分页: 1 / 2
请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-02 11:21
由 clm0081
我想用sh脚本来获取fdisk -l -u /dev/loop? 的start值 请问 怎么抓取这一段代码 并将其保存到一个变量里?
先谢谢了

Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-02 17:40
由 eexpress
grep啊。awk啊。sed啊。
你这没通用性。
为什么是loop。。。
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-02 17:53
由 clm0081
额···我已经知道用awk可以定位段落 但是 我要怎么定位行呢? 以loop+数字作为定位关键字 定位行 然后再用awk定位段落就能抓出来了吧 但是 要怎么定位行呢? 什么命令可以达到这个效果呢?
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-02 18:02
由 eexpress
● sudo fdisk -l|awk '/dev\/loop/ {print $3}'
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-03 23:38
由 clm0081
代码: 全选
#!/bin/sh
startn=$(fdisk -l -u /dev/loop6|awk '/dev\/loop6p/ {print $3}')
offset=$((512*$startn))
echo "$offset"
这是我写的一段···但是会报错 ···计算那里 提取出变量值 不是就是在变量名前加个$么?
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-05 10:19
由 clm0081
我~需要帮助~i need help
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-05 10:28
由 BigSnake.NET
计算前检查 startn 是什么
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-05 17:48
由 clm0081
7楼说的是什么意思? 请说详细点 话说···我试验过用
代码: 全选
a=3
offset=$((512*$a))
但是也提示出错
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-05 17:54
由 BigSnake.NET
autumncat@autumncat-host:~
$ a=3
Exit status: 0
autumncat@autumncat-host:~
$ offset=$((512*$a))
Exit status: 0
autumncat@autumncat-host:~
$ echo $offset
1536
Exit status: 0
你用的是bash么...
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-05 21:41
由 clm0081
[~]# a=3
[~]# offset=$((512*$a))
[~]# echo $offset
1536
[~]# cat w.sh
a=3
offset=$((512*$a))
echo $offset
[~]# sh -x w.sh
+ a=$'3\r'
")syntax error: operand expected (error token is "
[~]#
结果是这样的
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-05 21:42
由 BigSnake.NET
用 bash, 不要用 sh
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-07 0:53
由 clm0081
[~]# bash w.sh
")syntax error: operand expected (error token is "
是这样的么?
还是不行的说
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-08 23:32
由 clm0081
帮帮我吧
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-09 23:25
由 sky_sust
fdisk -l -u /dev/loop6 | sed -n '/^\/dev/' | awk '{print $3}'
Re: 请教一下如何用sh脚本获得一段命令输出的内容
发表于 : 2010-01-11 23:24
由 clm0081
14楼的命令运行后是这样大结果
[/]# fdisk -l -u /dev/loop6 | sed -n '/^\/dev/' | awk '{print $3}'
sed:-e 表达式 #1,字符 8:missing command
继续问这个问题
[~]# bash w.sh
")syntax error: operand expected (error token is "
是这样的么?
还是不行的说