【发布时间】:2014-10-21 12:56:22
【问题描述】:
我正在尝试编写一个简单的脚本来杀死一个进程。我已经阅读了Find and kill a process in one line using bash and regex,所以请不要将我重定向到那个。
这是我的代码:
LINE=$(ps aux | grep '$1')
PROCESS=$LINE | awk '{print $2}'
echo $PROCESS
kill -9 $PROCESS
我希望能够运行类似的东西
sh kill_proc.sh node 并让它运行
kill -9 node
但我得到的是
kill_process.sh: line 2: User: command not found
我发现当我登录$PROCESS 时它是空的。
有谁知道我做错了什么?
【问题讨论】:
-
PROCESS=$LINE | awk '{print $2}'是错误的。将其与第一行进行比较。 -
@EtanReisner 如果我尝试
PROCESS=$(LINE | awk '{print $2}')我仍然收到错误LINE: command not found` -
您仍然需要将
$前缀为LINE(并将echo加入管道):$(echo $LINE | awk...) -
@MarcB
var=$(command)更好... -
在
LINE=$(ps aux | grep '$1')中,'$1'没有展开。使用双引号,例如LINE=$(ps aux | grep "$1")