ディレクトリを生成するbashシェルスクリプト

ディレクトリを生成するbashシェルスクリプト

Bashシェルスクリプトを作成して3つのディレクトリを作成し、dir1次のファイルを各ディレクトリに配置します。サイズは0で、内容は現在の日付/時刻です。ホスト名を含むファイルの行のみをディレクトリに保存するファイルを作成します。ループを使用してディレクトリとファイルを作成します。コマンドで生成するには、条件付きブロックを使用する必要があります。dir2dir3file1file2file1file2file3dir3/etc/hostsfile3grephostname

答え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ユーティリティは標準入力からデータを取得し、複数のファイルにコピーしてから標準出力にコピーします。ここでは、ユーティリティの日付をdate3つのfile2ファイルに書き込むために使用しています。/dev/null端末に日付が表示されないように、最後にリダイレクトしてください。

上記のコードでは、引数としてユーティリティを呼び出す前にdir{1..3}拡張されdir1 dir2 dir3ますdir{1..3}/file1dir1/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

関連情報