运行脚本时找不到命令

时间:2014-02-18 13:27:26

标签: bash shell grep command pid

我有一个非常基本的脚本,一直没有找到命令。我看过这个网站,找不到适合我的答案。 bash的路径是正确的。我用od检查了脚本。我运行dos2unix。这些都没有帮助我。

SCRIPT:

    #!/bin/bash
    HYBRISPROC=`ps -eo pid,command | grep [h]ybris | grep -v grep | awk '{print $1}'`
    echo "Looking for Hybris..."
    echo $HYBRISPROC

结果:

    ./HybrisStopStart.sh: line 5: ps: command not found
    ./HybrisStopStart.sh: line 5: grep: command not found
    ./HybrisStopStart.sh: line 5: awk: command not found
    ./HybrisStopStart.sh: line 5: grep: command not found
    Looking for Hybris...

有什么想法吗?如果我自己运行命令它工作正常。我已经尝试过它作为sudo以及相同的结果。

TIA

2 个答案:

答案 0 :(得分:1)

怎么样?

#!/bin/bash
HYBRISPROC=`ps -eo pid,command | grep [h]ybris | grep -v grep | awk '{print $1}'`
echo "Looking for Hybris..."
echo "$HYBRISPROC"

(OR)

#!/bin/bash
HYBRISPROC="ps -eo pid,command | grep [h]ybris | grep -v grep | awk '{print $1}'"
echo "Looking for Hybris..."
bash -c "$HYBRISPROC"

(OR)

#!/bin/bash
HYBRISPROC="ps -eo pid,command | grep [h]ybris | grep -v grep | awk '{print $1}'"
echo "Looking for Hybris..."
eval "$HYBRISPROC"

<强>完全以:

你可以看到差异:

#!/bin/bash
LS=`ls -l`
echo $LS    #nasty way
echo 
echo "$LS"  #good way

答案 1 :(得分:1)

尝试添加

  

PATH = “$ PATH:在/ usr / bin中:/ BIN”

在代码之前。看起来bin目录不在你的路径上。所以找不到命令。