次のタスクを実行するシェル スクリプトを作成しようとしています。
- Linux Box A から Linux Box B に接続する
- 最新の 5 つの prop.jar ファイルのリストを取得する
- シリアル番号 1 ~ 5 を使用してこのリストをユーザーに提示し、ユーザーの入力を求めます。
- ユーザーは 1 から 5 までの任意の数字を入力できます。それ以外の数字の場合は、エラーが表示されます。
- ユーザーキーが適切な数になると、このjarファイルがBからAにコピーされます
私はシェルスクリプトが初めてなので、少し遅くなります。私が学んだことは次のとおりです。
- ボックスAからボックスBに接続するには、sshを使用します
- シェル スクリプトからコマンドを実行しました: ssh user@host find -name 'prop*.jar'このコマンドにより、必要なファイルのリストが表示されました。
- しかし、私がコマンドを試したとき:
ssh user@host find -name 'prop*.jar' -printf '%C@ %p\n' | 並べ替え -rn | 頭 -n 5
エラーが表示されます- find: paths must before expression: %pn
どこが間違っているのですか。私はググって多くのバリエーションを試しましたが、シェルスクリプトはまだこのエラーをスローします. まだ試していないので、残りの手順については回答しません。しかし、確かに、このステップは私を消費しました。
編集: リモートボックスBからボックスAにコピーする方法を見つけました:
- scp -o StrictHostKeyChecking=no [[user@]from-host:]source-file [[user@]to-host:][destination-file]
しかし、元の問題はまだ残っています....そこに助けがあれば:(