Bashシェルスクリプトを作成して3つのディレクトリを作成し、dir1
次のファイルを各ディレクトリに配置します。サイズは0で、内容は現在の日付/時刻です。ホスト名を含むファイルの行のみをディレクトリに保存するファイルを作成します。ループを使用してディレクトリとファイルを作成します。コマンドで生成するには、条件付きブロックを使用する必要があります。dir2
dir3
file1
file2
file1
file2
file3
dir3
/etc/hosts
file3
grep
hostname
答え1
ループは必要ありません。実際、これは混乱と非効率性を引き起こすだけです。
mkdir dir{1..3}
touch dir{1..3}/file1
date | tee dir{1..3}/file2 >/dev/null
grep "$(hostname)" /etc/hosts >dir3/file3
この答えに関して少し進化した方法はを使用することですtee
。このtee
ユーティリティは標準入力からデータを取得し、複数のファイルにコピーしてから標準出力にコピーします。ここでは、ユーティリティの日付をdate
3つのfile2
ファイルに書き込むために使用しています。/dev/null
端末に日付が表示されないように、最後にリダイレクトしてください。
上記のコードでは、引数としてユーティリティを呼び出す前にdir{1..3}
拡張されdir1 dir2 dir3
ますdir{1..3}/file1
。dir1/file1 dir2/file1 dir3/file1
答え2
これを行うことができます:
for i in {1..3}; do
mkdir dir$i
touch dir$i/file1
date > dir$i/file2
if [ $i -eq 3 ]; then
grep $(hostname) /etc/hosts > dir$i/file3
fi
done