我正在编写一个 Bash 函数来启动需要从某个文件夹启动的服务器,但我不希望启动该服务器影响我当前的工作。我写了以下内容:
function startsrv {
pushd .
cd ${TRUNK}
${SERVERCOMMAND} &
popd
}
我的变量都已设置,但是当执行时,我收到一个关于输出中意外分号的错误,看来 Bash 在 & 符号后面插入了一个分号${SERVERCOMMAND}
在后台。
我可以做些什么来开始${SERVERCOMMAND}
在后台,同时仍然使用 Pushd 和 Popd 来确保我最终回到当前目录?
编辑:输出echo ${SERVERCOMMAND}
,因为有人要求:
yeti --server --port 8727
错误信息:
-bash: syntax error near unexpected token `;'
有什么价值$SERVERCOMMAND
?其中必须有分号。
对于它的价值,你可以将 Pushd/CD 简化为一个 Pushd:
pushd $TRUNK
$SERVERCOMMAND &
popd
或者创建一个子 shell,以便 cd 只影响一个命令:
(cd $TRUNK; $SERVERCOMMAND &)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)