我正在尝试通过SSH运行一系列命令。 This answer启发了我使用EOF的方法,起初看起来效果不错,但是一旦尝试使用$()运行subshell命令,就开始行动起来。
任何人都知道为什么这样:
#!/bin/bash
ssh -o StrictHostKeyChecking=no -tt abcdef@zxcv.net << EOF
cd "$(ls -td -- ~/www/builds/* | head -n 1)"
pwd
composer install
npm run installation
npm run clean
npm run build
exit
EOF
是吗?
17-May-2019 10:29:26 Last login: Fri May 17 12:28:44 2019 from 82.148.198.138
17-May-2019 10:29:26
17-May-2019 10:29:26 cd ""
17-May-2019 10:29:26 pwd
17-May-2019 10:29:26 composer install
17-May-2019 10:29:26 npm run installation
17-May-2019 10:29:26 npm run clean
17-May-2019 10:29:26 npm run build
17-May-2019 10:29:26 exit
从shell脚本执行时,子shell返回空白,但在bash终端中手动执行时,它工作正常。在没有双引号的情况下也会发生这种情况。
我正在Ubuntu服务器上这样做。