linux - 在 bash 脚本中调用的终端内抛出命令

标签 linux bash

我想为工作区配置制作一个脚本,我需要它来打开 ssh 终端,在其中我需要抛出一个 bash 命令(因为默认是 tcsh),然后在 bash 上抛出另一个命令,我希望终端保持在最后的状态。

我在脚本中有这个:

...
cd xxx/xxx
bash
source setup.sh
...
exit 0

当脚本结束时,我的终端停留在 bash 中,但没有执行后续步骤。

我也尝试过这个:

ssh -X URL << '___' 
   cd xxx/xxx
   bash -c "source setup.sh"
___

如果我仅在 ssh URL 内启动 bash -c,它会起作用,但如果我完成它,它会结束执行并将我置于 ssh URL 之外。如果我在最后执行 bash -i ,它会显示“bash:此 shell 中没有作业控制”并将我转出。 -exec 选项的作用相同。

我怎样才能正确地做到这一点?

最佳答案

您可以在标准输入上将任意复杂的脚本传递给 bash

bash <<'____'
    source setup.sh
    : things
    # no explicit exit really needed
____

关于linux - 在 bash 脚本中调用的终端内抛出命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37585884/

相关文章:

python - pocketsphinx python gstreamer 音频速率

linux - 在 Linux mint VirtualBox 客户机上访问文件

linux - bash 文件的符号链接(symbolic link)

linux - maxscale:后端服务器不接受用户身份验证

linux - 检查主目录中是否存在目录

bash - 从陷阱处理程序获取 bash 中的函数回溯(使用调用者)

ruby-on-rails - 在 bash 中执行 rake 命令

linux - 查找在特定日期从特定计算机登录的所有用户

ios - 在 Xcode 中创建动态预处理器宏

bash:无法在同一行中设置和使用别名