私は、最終的に変数に変換されるディレクトリのリストから派生した番号付きリストから2つのファイルを選択するようにしたいと思います。私はスイッチのいくつかの出力表示コマンドを自動的に組み合わせたいネットワークエンジニアです。
これはうまくいきません。
echo "Please Select the Show interface status file"
select FILE1 in *;
echo "Please Select the Show Vlan file"
select FILE2 in *;
do
ディレクトリからファイルを選択できるようになったら、「cat $FILE1 > file1」と「cat $FILE2 > file2」を選択し、それらを結合する予定です。
ベストアンサー1
次の文に進む前に、select
各文を完了する必要があります。文はselect
実際には特別なタイプのループです。
次のスクリプトがある場合は、examplefile01
ファイルセットがあるとします。examplefile10
select f in example*; do
echo "You selected $f"
break
done
実行すると、次のようになります。
$ ./470595.sh
1) examplefile01 4) examplefile04 7) examplefile07 10) examplefile10
2) examplefile02 5) examplefile05 8) examplefile08
3) examplefile03 6) examplefile06 9) examplefile09
#? 5
You selected examplefile05
このbreak
ドアは重要です。それ以外の場合は、select
オプションを再レンダリングするためにループバックを実行するためです。
したがって、お客様の場合は、次のものが必要になる場合があります。
echo "Please Select the Show interface status file"
select FILE1 in *; do
cat "$FILE1" >> outputfile1
break
done
echo "Please Select the Show Vlan file"
select FILE2 in *; do
cat "$FILE2" >> outputfile2
break
done
echo
PS3の修正説明で提供されるプロンプトを設定することで、これらの説明を賢明に回避することもできます。select
PS3="Please Select the Show interface status file )"
select FILE1 in *; do
cat "$FILE1" >> outputfile1
break
done
PS3="Please Select the Show Vlan file )"
select FILE2 in *; do
cat "$FILE2" >> outputfile2
break
done
また、ファイルをマージする予定なので、最終選択と同時に実行する方が簡単な場合があります。
PS3="Please Select the Show interface status file )"
select FILE1 in *; do
break
done
PS3="Please Select the Show Vlan file )"
select FILE2 in *; do
cat "$FILE1" "$FILE2" > outputfile
break
done