Cad*_*deq 0 linux variables bash
我在尝试制作bash脚本时遇到问题.
这是命令:
ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1
Run Code Online (Sandbox Code Playgroud)
这是我如何保存变量
first =$(ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1)
Run Code Online (Sandbox Code Playgroud)
当我执行此脚本时,控制台说:
./test.sh:line3:2748:未找到订单
我究竟做错了什么?谢谢
变量赋值是这样的: var=$(command)
.
所以在你的情况下,你写了一个太多的空间.代替:
first =$(ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1)
^
Run Code Online (Sandbox Code Playgroud)
你需要写:
first=$(ps -ef | grep "python ./" |awk '{print $2 }' | head -n 1)
^
no spaces around = !!
Run Code Online (Sandbox Code Playgroud)
./test.sh:line3:2748:未找到订单
因为first XX
,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 ./
Run Code Online (Sandbox Code Playgroud)