我尝试将一个命令行输出转换为(或存储为)变量。 命令是
ps -U root u | grep ruby | wc -l
输出是1,但是当我使用
$(ps -U root u | grep ruby | wc -l)
输出为
1: command not found
最佳答案
这里,
$(ps -U root u | grep ruby | wc -l)
您没有将输出保存到变量中。因此 shell 尝试执行结果(在您的情况下恰好是1
)。由于它找不到名为 1
的命令/函数,因此您会收到错误。
您可能想要:
output=$(ps -U root u | grep ruby | wc -l)
现在,output
将具有 1
,您可以使用它进行打印:
echo "${output}"
顺便说一句,grep
可以使用 -c
选项对自身进行计数。所以这里不需要 wc
:
output=$(ps -U root u | grep -c ruby)
echo "${output}"
关于linux - Ubuntu Shell 脚本问题 : convert output of command into variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34292428/