我想为工作区配置创建一个脚本,我需要它来打开一个ssh终端,在里面我需要抛出一个" bash"命令(因为默认是tcsh)和over bash,抛出另一个命令,我希望终端保持最后状态。
我在剧本中有这个:
...
cd xxx/xxx
bash
source setup.sh
...
exit 0
当脚本结束时,我的终端保持bash,但没有执行下一步。
我该怎么做?有谁有想法?谢谢你提前。
现在我这样做:
ssh -X URL << '___'
cd xxx/xxx
bash -c "source setup.sh"
___
如果我只启动bash -c,在ssh URL中,它可以工作,但是如果我完成它,它会结束执行并将我放到ssh URL之外。如果我在最后做了bash -i,它说&#34; bash:在这个shell中没有工作控制&#34;把我抛弃-exec选项也是如此。
任何人都能看到我做错了什么?
答案 0 :(得分:2)
您可以在标准输入上将任意复杂的脚本传递给bash
。
bash <<'____'
source setup.sh
: things
# no explicit exit really needed
____
答案 1 :(得分:0)
我要做的是将bash
行与exit 0
之间的命令放入单独的文件中,例如mycommands.sh
#!/bin/bash
source setup.sh
...
exit 0
chmod +x mycommands.sh
然后进行invode mycommands.sh 在你写bash的时候
但你也可以
bash -c "source setup.sh; ... ; exit 0"
答案 2 :(得分:0)
将“#!/ bin / bash”放在“setup.sh”的标题上。
这将使该脚本在Bash shell下运行。