구조 화 명령 -- for 학습

1923 단어 shell
for 명령
일련의 명령 을 반복 해서 실행 하 는 것 은 프로 그래 밍 에서 흔히 볼 수 있다.특정한 조건 에 도달 할 때 까지 명령 을 반복 해 야 합 니 다. 예 를 들 어 디 렉 터 리 에 있 는 모든 파일, 시스템 에 있 는 모든 사용자 나 텍스트 파일 에 있 는 모든 줄 을 처리 해 야 합 니 다.
bash 셸 은 for 명령 을 제공 합 니 다. 일련의 값 을 옮 겨 다 니 는 순환 을 만 들 수 있 습 니 다.모든 교 체 는 이 클래스 의 값 을 통 해 미리 정 의 된 명령 을 실행 합 니 다.
for 문법:
for var in list
do
commands
done
인 스 턴 스 1: 디 렉 터 리 옮 겨 다 니 기
for file in /root/*
do
  if [ -d "$file" ]
  then
     echo "$file is a directory"
  elif [ -f "$file" ]
  then
     echo "$file is a file"
  else
     echo "$file doesn't exist"
  fi
done

출력 결 과 는:
/root/1 is a file
/root/anaconda-ks.cfg is a file
/root/cash.sh is a file
/root/chown.sh is a file
/root/Desktop is a directory
/root/evalre.sh is a file
/root/evalsource is a file
/root/format.sh is a file
/root/for.sh is a file
/root/group.sh is a file
/root/hfile is a file
/root/hoststatus.txt is a file
/root/if.sh is a file
/root/install.log is a file
/root/install.log.syslog is a file
/root/iplist is a file
/root/iptest.sh is a file
/root/ntfs-3g_ntfsprogs-2013.1.13 is a directory

심득: for 문 구 는 마스크 로 생 성 된 파일 목록 을 옮 겨 다 니 며 파일 확장 매 칭 을 사용 할 수 있 습 니 다. 그리고 목록 의 다음 파일 을 옮 겨 다 닐 수 있 습 니 다.목록 에 여러 개의 어댑터 를 넣 을 수 있 습 니 다.
인 스 턴 스 2: for 순환 으로 파일 이름 일괄 수정
1、创建脚本实验数据
[root@localhost ~]# cd /home/centos/
[root@localhost centos]# touch abc_12345_1_.centos.jpg  abc_12345_2_centos.jpg  abc_12345_3_centos.jpg  abc_12345_4_centos.jpg  abc_12345_5_centos.jpg
2、用for循环遍历所有.jpg的文件,去除.jpg文件名中centos字符
#!/bin/bash
for file in `ls ./*.jpg` ;do
mv $file `echo $file|sed 's/centos//g'`
done

출력 결 과 는:
[root@localhost centos]# ls
abc_12345_1_..jpg  abc_12345_2_.jpg  abc_12345_3_.jpg  abc_12345_4_.jpg  abc_12345_5_.jpg

심득: 셸 스 크 립 트 for 순환 결합 sed 파일 이름 을 대량으로 변경 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기