我想知道为什么它不起作用。请建议我。
工作
$ nu =awk'/ ^ Mem / {printf($ 2 * 0.7);}'<(free -m)$ echo $ nu1291.52.不工作
awk'/ ^ Mem / {printf($ 2 * 0.7);}'<(free -m)
$ cat test.sh#!/斌/庆典nu =`awk’/ ^ Mem / {printf($ 2 * …
该 <( ) construct(“process substitution”)仅在bash中可用。它在其他shell中不可用,甚至在使用名称“sh”调用时在bash中也不可用。使用时运行脚本 sh test.sh ,它会覆盖shebang(指定bash),因此该功能不可用。您需要使用显式运行脚本 bash ,或(更好)只是运行它 ./test.sh 让shebang线做好自己的工作。
<( )
sh test.sh
bash
./test.sh
你可以尝试一下吗?
nu=$(free -m | awk '/^Mem/ {print $2*0.7}') echo "$nu"
注意事项是:
$
free
awk
|
nu
echo
<(...)
添加原因的原因 家当 在脚本中,如果文件具有执行权限,则定义解释器指令。
然后,您应该通过例如调用它
$ ./test.sh
一旦你设置了权限
$ chmod +x test.sh