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
세 개의 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