2

入力に応じて異なるディレクトリに変更されるスクリプトを作成したいと思います。このようなもの:

test.sh:
#!/bin/bash
ssh machine001 '(chdir ~/dev$1; pwd)'

しかし、私が実行する./test.sh 2と、それはまだに行き~/devます。私の議論は無視されているようです。私はここで非常に愚かなことをしていますか?

4

2 に答える 2

5

Bash は、単一引用符 (') で囲まれた文字列内の変数構文を無視します。置換するには、二重引用符 (") が必要です。

#!/bin/bash
ssh machine001 "(chdir ~/dev$1; pwd)"
于 2013-02-11T19:01:45.190 に答える
2

パラメーターはシングル クォーテーションで囲まれているため、ローカル側では展開されません。代わりに二重引用符を使用してください。

#!/bin/bash

ssh machine001 "chdir ~/dev$1; pwd"

(...)コマンドのペアを実行してから終了するだけなので、 は必要ありません。

于 2013-02-11T19:01:26.230 に答える