Expectユーティリティと一緒に使用すると、scpコマンドは異なる動作をします。

Expectユーティリティと一緒に使用すると、scpコマンドは異なる動作をします。
expect -c 'spawn scp -C -o CompressionLevel=9 ~/partFiles/* [email protected]:/export/home/abc/; sleep 10; expect password; send "secretPassword\n";interact'

投げる -~/partFiles/*: No such file or directory

ただ

scp -C -o CompressionLevel=9 ~/partFiles/* [email protected]:/export/home/abc/

しかし、完璧に動作します。

なぜ?この問題をどのように解決しますか?

ベストアンサー1

私は考え~てシェルによって拡張されますが、シェルをバイパスして直接呼び出され、拡張されないことを*期待しています。scpビルドsh -cコマンドを試すことができますscp

これがオプションの場合、キーをサーバーと共有する方が簡単になる可能性があるため、これに対する期待はまったくありません。

このsh手法では、コマンドは次のように表示されます。

expect -c 'spawn sh -c "scp -C -o CompressionLevel=9 ~/partFiles/* [email protected]:/export/home/abc/"; sleep 10; expect password; send "secretPassword\n";interact'

おすすめ記事