捕获shell变量中的命令输出不起作用

时间:2017-03-25 18:37:21

标签: linux shell

我是shell脚本的新手,需要将一系列命令输出到shell脚本中的局部变量,但要继续失败。例如,grep -c输出到将在if语句中使用的变量。如果有人可以将我重定向到解释该过程的来源,我将不胜感激。

#!/bash/sh

myVar = ls ~/bin | grep -c $0

1 个答案:

答案 0 :(得分:4)

shellcheck.net发布您的代码可以快速为您提供宝贵的指示:

myVar = ls ~/bin | grep -c $0
^-- SC2037: To assign the output of a command, use var=$(cmd) .
      ^-- SC1068: Don't put spaces around the = in assignments.
                           ^-- SC2086: Double quote to prevent globbing and word splitting.

如果我们实现这些指针:

myVar=$(ls ~/bin | grep -c "$0")

另请注意,您的shebang行路径不正确 - #!必须后跟执行shell二进制文件的完整路径。

用于学习bash

资源,这是使用最广泛的POSIX兼容shell: