私の要件:sshpassコマンドを使用していくつかのコマンドを渡したいです。例1:
sshpass -p 'sshpass' ssh -oKexAlgorithms******* user@host touch /mnt/us/pass
上記のsshpassの例は完全に機能します。
例2:
sshpass -p 'sshpass' ssh -oKexAlgorithms******* user@host mntroot rw
上記の例では、ホストからmntroot rw
ログインしたユーザーにアクティブな読み取りおよび書き込み権限を付与する必要があります。 sshpass command passを使用すると、このコマンドは機能せずsh: mntroot: not found
エラーが発生しますが、ログインして手動で入力するとホスト上で完全に機能します。
助けてください。
答え1
1つの回避策は、mntroot
フルパスを使用して呼び出すことです。
対話型シェルと非対話型シェルは異なる初期化ファイルを使用します。たぶんそれが理由かもしれません。システムにログインすると、明らかに異なるPATH
値が得られます。