디렉토리를 생성하는 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유틸리티는 표준 입력의 데이터를 가져와 여러 파일에 복사한 다음 다시 표준 출력에 복사합니다. 여기서는 유틸리티의 날짜를 date세 개의 file2파일에 기록하는 데 사용하고 있습니다. /dev/null터미널에 날짜가 표시되지 않도록 끝 으로 리디렉션하세요 .

위 코드에서 는 인수로 유틸리티를 호출하기 전에 dir{1..3}확장 될 dir1 dir2 dir3dir{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

관련 정보