Unixでは、@hostコマンドを使用してsshpassを実行すると、「sh:mntroot:notfound」エラーが発生します。この問題を解決するには?

Unixでは、@hostコマンドを使用してsshpassを実行すると、「sh:mntroot:notfound」エラーが発生します。この問題を解決するには?

私の要件: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値が得られます。

関連情報