1

私はbashスクリプトから次のようなものを実行しようとしています:

HOST=foo
DIR=bar

ssh user@$HOST "
function test
{
    CURHOST=$HOST
    cd $DIR
    mkdir -p $CURHOST
}; test"

で実行すると、次のset -xように変換されることがわかります。

+ ssh user@foo '
   function test
   {
       CURHOST=foo
       cd bar
       mkdir -p
   }; test

mkdir -pそしてもちろん、引数がないことについて不平を言います。これはなぜですか?また、そこにローカル変数を設定するにはどうすればよいですか?

4

2 に答える 2

1

ドル記号をエスケープするだけです。

echo "
function test
{
    CURHOST=$HOST
    cd $DIR
    mkdir -p \$CURHOST
}; test"

あなたにあげる:

function test
{
    CURHOST=foo
    cd bar
    mkdir -p $CURHOST
}; test
于 2013-06-06T23:59:05.527 に答える