在on-the-spot shell命令中使用变量值(使用``)

时间:2013-08-16 17:04:21

标签: bash shell

我有一个shell脚本,用于循环输入以获取数字和字符串。如果我想测试循环中的数字,我可以剪切循环变量来获取数字吗?例如,像:

for line in input
do
num=`cut -f1 $line`
...
done

如果没有,我还能怎样做到这一点?

2 个答案:

答案 0 :(得分:2)

而不是:

num=`cut -f1 $line`

你可以这样做:

num=$(echo "$line" | cut -f1)

或者使用awk:

num=$(awk '{print $1}' <<< $line)

或使用纯BASH:

num=${line%% *}

您的命令cut -f1 $line将尝试从名为$line的文件中删除第一列。

答案 1 :(得分:0)

这是你想要的吗?

 while read -r number str
 do
   echo $number;
   echo $str;
 done < input