Bash Script无法识别“&”

时间:2014-01-06 14:07:43

标签: linux bash selenium

喂 我试图编写一个bash脚本来克隆我的rrepository,然后使用selenium运行测试。当我尝试安装selenium依赖项时,特别是当我在代码中运行此命令(Xvfb:99 -ac& export DISPLAY =:99)时,我收到一个错误(无法识别的选项:&)。这是我的代码的一部分

xvfbb="sudo apt-get install -y xvfb"
enn="Xvfb :99 -ac & export DISPLAY=:99"
magic="sudo apt-get install -y imagemagick"
*#Function to call installation variables*

    function seleniumTests() {
    $xvfbb
    $enn
    $magic
    echo "done installing dependencies."
    }

然后,当我完成克隆时,我调用上面的函数(seleniumTests)。知道为什么“&”被认为是错误?感谢

2 个答案:

答案 0 :(得分:1)

shell不解析shell语法的参数扩展。您只能以您尝试的方式存储非常简单的命令,即使这样也是不可取的。改为使用函数。

xvfbb () { sudo apt-get install -y xvfb; }
enn () { Xvfb :99 -ac & export DISPLAY=:99; }
magic () { sudo apt-get install -y imagemagick; }
function seleniumTests() {
    xvfbb
    enn
    magic
    echo "done installing dependencies."
}

答案 1 :(得分:0)

扩展变量时,不会评估像&(还有更多)这样的事情。

要明确评估它,请使用eval;然后我建议在变量周围使用引号:

eval "$enn"