16_Shell 언어 - for 순환 요소 목록 의 생 성 법칙
a) 모든 요 소 를 하나씩 열거 하고 앞의 요소 목록 은 모두 이런 형식 을 사용한다.
b) 마스크 방식 을 채택 한다.모든 요 소 를 하나씩 열거 하 는 방식 은 소량의 요소 의 목록 에 만 적합 하 며, 요소 의 개수 가 많 으 면 이 방법 은 적용 되 지 않 습 니 다.
옮 겨 다 니 려 면/var 디 렉 터 리 에 있 는 모든 파일 을 판단 하고 파일 형식 을 판단 합 니 다. ls 를 사용 하면 /var 모든 파일 을 보고 모든 요 소 를 하나씩 열거 하 는 방식 은 번 거 로 울 수 있 습 니 다. 그러나 마스크 를 사용 하여 목록 을 만 들 면 작업 이 간단 합 니 다.
# nano show_files_type.sh
#! /bin/bash
#
for File in /var/*; do
# /var c , /var/c*
file $File
done
unset File
집행 결과
[root@localhost ~]# ./show_files_type.sh
/var/account: directory
/var/cache: directory
/var/crash: directory
/var/cvs: directory
/var/db: directory
/var/empty: directory
/var/games: directory
/var/gdm: sticky directory
/var/lib: directory
/var/local: directory
/var/lock: directory
/var/log: directory
/var/mail: symbolic link to `spool/mail'
/var/nis: directory
/var/opt: directory
/var/preserve: directory
/var/run: directory
/var/spool: directory
/var/tmp: sticky directory
/var/www: directory
/var/yp: directory
c) 명령 을 사용 하여 목록 을 생 성 합 니 다.
마스크 를 제외 하고 명령 을 사용 하여 목록 을 만 드 는 것 도 코드 를 간소화 하 는 효과 가 있다.또는 상기 예, "/var/*"목록 은 ls 를 사용 할 수 있 습 니 다. /var 명령 을 사용 하여 생 성 합 니 다. 명령 을 사용 하여 생 성 된 목록 은 반 따옴표 로 참조 해 야 합 니 다.
#!/bin/bash
#
for File in `ls /var`;do
file /var/$File
done
unset File
집행 결과
[root@localhost ~]# ./show_files_type.sh
/var/account: directory
/var/cache: directory
/var/crash: directory
/var/cvs: directory
/var/db: directory
/var/empty: directory
/var/games: directory
/var/gdm: sticky directory
/var/lib: directory
/var/local: directory
/var/lock: directory
/var/log: directory
/var/mail: symbolic link to `spool/mail'
/var/nis: directory
/var/opt: directory
/var/preserve: directory
/var/run: directory
/var/spool: directory
/var/tmp: sticky directory
/var/www: directory
/var/yp: directory
d) 디지털 시퀀스 를 생 성 하 는 방식 은 다음 과 같다.
① {부터 데 이 터 를... 종료 데이터}.
예 를 들 어 1 ~ 100 개의 숫자 를 만 드 는 요소 목록 을 만 들 려 면 {1. 100} 이 라 고 쓸 수 있 습 니 다.
② seq 명령 을 사용 합 니 다.사용 man seq 는 seq 의 용법 을 볼 수 있 습 니 다:
seq [OPTION]... LAST #
seq [OPTION]... FIRST LAST #
seq [OPTION]... FIRST INCREMENT LAST
# ,
예 를 들 어 각각 1 - 6, 3 - 6, 3 에서 16 을 표시 하고 매번 간격 2
집행 결과
[root@localhost ~]# man seq
[root@localhost ~]# seq 6
1
2
3
4
5
6
[root@localhost ~]# seq 3 6
3
4
5
6
[root@localhost ~]# seq 3 2 16
3
5
7
9
11
13
15
그래서 요소 목록 에서 사용 할 수 있 습 니 다. `seq [시작 숫자] [보폭] [끝 숫자] ' 의 형식 으로 생 성 된다.
다음 예 를 들 어 요소 목록 의 생 성 을 소개 합 니 다.
for 순환 을 사용 하여 모든 사용자 의 사용자 이름과 셸 을 꺼 내 려 면 다음 과 같은 형식 을 사용 할 수 있 습 니 다.
# nano user_shell.sh
#!/bin/bash
#
LINES=`wc -l /etc/passwd | cut -d' ' -f1`
# LINES , wc -l ,
# cut ,
for I in `seq 1 $LINES`;do
# I 1 , LINES
head -$I /etc/passwd | tail -1 | cut -d: -f1,7
# head I , tail ,
# tail , I , cut ,
# cut “:” , 1、 7
done
unset I
unset LINES
집행 결과
[root@localhost ~]# nano user_shell.sh
[root@localhost ~]# chmod +x user_shell.sh
[root@localhost ~]# ./user_shell.sh
root:/bin/bash
bin:/sbin/nologin
daemon:/sbin/nologin
adm:/sbin/nologin
lp:/sbin/nologin
sync:/bin/sync
shutdown:/sbin/shutdown
halt:/sbin/halt
mail:/sbin/nologin
uucp:/sbin/nologin
operator:/sbin/nologin
games:/sbin/nologin
gopher:/sbin/nologin
ftp:/sbin/nologin
nobody:/sbin/nologin
dbus:/sbin/nologin
usbmuxd:/sbin/nologin
vcsa:/sbin/nologin
rpc:/sbin/nologin
rtkit:/sbin/nologin
avahi-autoipd:/sbin/nologin
abrt:/sbin/nologin
rpcuser:/sbin/nologin
nfsnobody:/sbin/nologin
haldaemon:/sbin/nologin
gdm:/sbin/nologin
ntp:/sbin/nologin
apache:/sbin/nologin
saslauth:/sbin/nologin
postfix:/sbin/nologin
pulse:/sbin/nologin
sshd:/sbin/nologin
tcpdump:/sbin/nologin
centos:/bin/bash
hbase:/bin/bash
openstack:/bin/bash
hadoop:/bin/bash
ubuntu:/bin/bash
debian:/bin/bash
gentoo:/bin/bash
slackware:/bin/bash
archlinux:/bin/bash
sysuser:/bin/bash
sysuser1:/bin/bash
bsd:/bin/csh
moregrp:/bin/bash
redis:/bin/bash
mandriva:/bin/bash
fedora:/bin/csh
suse:/bin/dash
tom:/bin/bash
nologin:/sbin/nologin
mysql:/sbin/nologin
user2:/bin/bash
user3:/bin/bash
userA:/bin/bash
userB:/bin/bash
userC:/bin/bash
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.