分页: 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 "

是这样的么?
还是不行的说