我现在怀疑自己的理智。在 MacOS 上,如果我尝试执行此脚本,例如:
#!/bin/bash
OUTPUT=ps aux |grep "somename"
echo $OUTPUT
执行结果为:
./test.sh: line 2: aux: command not found
在终端中它运行良好:
% ps aux | grep "somename"
root 29597 0.0 0.1 11264 2224 0 S+ 18:11 0:00.00 grep somename
我显然不想执行名为 的命令aux
,但 的参数ps
。我是不是忘了一些括号或引号之类的东西?
答案1
现在您正在将值“ps”分配给变量OUTPUT
并执行aux |grep "somename"
。
如果要将输出分配ps aux |grep "somename"
给变量,则需要告知bash
这样做:
OUTPUT=$(ps aux |grep "somename")