在脚本中使用subshel​​l命令时,SSH EOF不返回任何内容

时间:2019-05-17 11:41:51

标签: bash shell eof

我正在尝试通过SSH运行一系列命令。 This answer启发了我使用EOF的方法,起初看起来效果不错,但是一旦尝试使用$()运行subshel​​l命令,就开始行动起来。

任何人都知道为什么这样:

#!/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服务器上这样做。

0 个答案:

没有答案