我通常需要运行程序进行一些文件检查,比如说使用 wc
来计算一个文件的行数,然后对其进行运算。通常我的做法是先得到输出结果,然后通过打开python终端或任何一个软件来进行运算。
如果我要做很多次,那么这样就有点烦了,我希望有一些方法可以直接获取输出,然后做我想要的运算。例如,我喜欢的一种方法是用perl的下面的方法,假设我必须取输出的 wc
并将其除以12。
perl -e 'print `wc -l file`/12'
这可能是有用的,但过了一会儿就会变得很烦人。因为这可能是人们经常需要做的事情,我想知道人们用什么更好更快的方法来快速完成这个任务。我见过 expr
可能会更好,但当我把绑定在 ``
,就像上面一样。所以基本上最短,最有效的方法就是可以在linux终端中从文件输出中进行这种简单的运算。
双括号 ((...))
算术,并带元号 $((...))
你可以将结果作为一个字符串。
echo $((`wc -l < file` / 12))
echo $(($(wc -l < file) / 12))
你可以使用变量,它们不需要美元符号。这两种 var
和 $var
是可以接受的。
lines=$(wc -l < file)
echo $((lines / 12))
if ((lines * 42 + 17 > 630)); then
...
fi
基本上我已经在我的bash代码上做了测试: 多行代码:
a=$(echo "hi" | wc -l)
echo $a
b=`expr $a + 2`
echo $b
我把它改成了一行
echo `expr $(echo "hi" | wc -l) + 20`
echo "hi" | wc -l
正在计算行数,并且是在 $()
使其成为一个变量,并对其值进行评估。expr
这里需要两个论证,并确保你在操作符前后使用空格,并使用backtic(`)来评估hi,最后做echo。