我在尝试制作bash脚本时遇到问题。
这是命令:
ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1
这是我保存变量的方法
first =$(ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1)
当我执行此脚本时,控制台会显示:
./test.sh:第3行:2748:找不到订单
我究竟做错了什么?谢谢
变量分配是这样的:var=$(command)
。
因此,在您的情况下,您写了一个空格太多。代替:
first =$(ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1)
^
您需要写:
first=$(ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1)
^
no spaces around = !!
./test.sh:第3行:2748:找不到订单
因为有了first XX
Bash,Bash知道您正在尝试first
使用参数运行命令XX
。
附录:让命令更为直接,没有尽可能多的管道,使用单一awk
的由汤姆·芬内克建议(感谢!):
ps -ef | awk '/python \.\//{print $2; exit}'
^^^^^^^^^^ ^^^^^^^^ ^^^^
| | stop processing, to get 1 value
| print the 2nd block
match lines with python ./
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句