スクリプトでscp
使用せずにコマンドを実行する必要があります。expect
scpをパスワードで使用するには?次のコードを試しました。
HOST=lnx1
USERNAME=user
PASSWORD=pwd
PATH=/sample/data/
FILE=$1
scp $FILE $USERNAME:'$PASSWORD'@$HOST:$PATH
sshpass -p '$PASSWORD' scp $FILE $USERNAME@:$PATH
エラーメッセージ:
scp: command not found
sshpass: command not found
これをどのように実装しますか?
答え1
PATH
変数をに設定しました/sample/data
。変数の前の内容をPATH
上書きしました。そのため、スクリプトはそのエントリを見つけ/sample/data
ましたが見つからず、エラーメッセージが表示されますscp
。sshpass
PATH
変数名を別の名前に変更してみてください。たとえば、次のようになります。
REMOTE_PATH=/sample/data/
scp $FILE $USERNAME:'$PASSWORD'@$HOST:$REMOTE_PATH
sshpass -p '$PASSWORD' scp $FILE $USERNAME@:$REMOTE_PATH
それでも機能しない場合は、フルパス名をscp
スクリプトに入力してみてくださいsshpass
。