findで見つけたフォルダの代わりに空白行が表示されるのはなぜですか?
ssh -o stricthostkeychecking=no -o userknownhostsfile=/dev/null \
-o batchmode=yes -o passwordauthentication=no [email protected] \
"sudo find /folder/CFGKCP/KCS\ Pro/Job\ Setup -name JOBCFG.info \
| while read linea; do echo $linea; done";
ベストアンサー1
Romeoが指摘したように、コマンドの周りに二重引用符を使用します。これは、コマンドを実行する前に変数が拡張されることを意味しますssh
。したがって、whileループの本文は次のようになります。
echo $linea
以前は存在しなかった可能性があるため、渡されssh
linea
たコマンドは空の文字列にecho
置き換えられます。linea
コマンドパラメータの周りに一重引用符を使用すると、パラメータ拡張が発生せず、文字列がそのまま渡されるので問題ありません。
ssh -o stricthostkeychecking=no -o userknownhostsfile=/dev/null -o batchmode=yes -o passwordauthentication=no [email protected] 'sudo find /folder/CFGKCP/KCS\ Pro/Job\ Setup -name JOBCFG.info | while read linea; do echo $linea; done'
あるいは、エスケープすると$
シェルが拡張しないように指示します。