> 백엔드 개발 > PHP 튜토리얼 > Linux 쉘 스크립트의 기본 학습에 대한 자세한 소개(4)

Linux 쉘 스크립트의 기본 학습에 대한 자세한 소개(4)

黄舟
풀어 주다: 2023-03-05 11:42:01
원래의
1701명이 탐색했습니다.

리눅스 쉘 스크립트의 기초 연구에 대한 이전 기사에서는 리눅스 쉘 스크립트의 제어 프로세스의 if, select 및 case에 대해 이야기했습니다. 여기서는 Linux 쉘 스크립트의 제어 프로세스에 대한 루프와 인용 부호를 소개하겠습니다. Linux 쉘 스크립트에는 제어 프로세스에 대한 추가 내용이 있으며 일부 내용은 here 문서에 관한 것입니다.
4.loop
루프 표현식:

while ...; do
....
done
로그인 후 복사

while-loop는 표현식 테스트가 true일 때까지 실행됩니다. 테스트하는 표현식이 true인 동안 실행됩니다.
루프를 벗어나는 데 "break" 키워드가 사용됩니다. "continue" 키워드는 나머지 부분을 실행하지 않고 다음 루프로 직접 점프하는 데 사용됩니다.
for 루프 표현식은 문자열(공백으로 구분된 문자열) 목록을 보고 이를 변수에 할당합니다.

for var in ....; do
....
done
로그인 후 복사

다음 예에서는 ABC가 각각 화면에 인쇄됩니다. 위:

#!/bin/sh
for var in A B C ; do
echo "var is $var"
done
로그인 후 복사

다음은 RPM 패키지의 일부 통계 정보를 인쇄하는 기능을 하는 더 유용한 스크립트 showrpm입니다.

#!/bin/sh
# list a content summary of a number of RPM packages
# USAGE: showrpm rpmfile1 rpmfile2 ...
# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm
for rpmpackage in $*; do
if [ -r "$rpmpackage" ];then
echo "=============== $rpmpackage =============="
rpm -qi -p $rpmpackage
else
echo "ERROR: cannot read file $rpmpackage"
fi
done
로그인 후 복사

두 번째 특별한 스크립트가 여기에 나타납니다. $* 변수에는 입력된 모든 명령줄 매개변수의 값이 포함됩니다.
showrpm openssh.rpm w3m.rpm webgrep.rpm
이때 $*에는 openssh.rpm, w3m.rpm 및 webgrep.rpm이라는 3개의 문자열이 포함되어 있습니다.
인용문
프로그램은 매개변수를 프로그램에 전달하기 전에 와일드카드와 변수를 확장합니다. 여기서 소위 확장이란 프로그램이 와일드카드 문자(예: *)를 적절한 파일 이름으로 바꾸고 변수를 변수 값으로 바꾸는 것을 의미합니다. 프로그램이 이러한 대체를 수행하는 것을 방지하려면 따옴표를 사용할 수 있습니다. 현재 디렉토리에 두 개의 jpg 파일, mail.jpg 및 tux.jpg가 있다고 가정하고 예를 살펴보겠습니다.
1.2 SHELL 스크립트를 컴파일합니다
#ch#!/bin/sh mod +x filename
cho *.jpg ∪ 천천히 螅谛果暙耄?./filename하여 스크립트를 실행합니다.
이렇게 하면 "mail.jpg tux.jpg"의 결과가 인쇄됩니다.
따옴표(단일 및 이중)는 이러한 와일드카드 확장을 방지합니다.

#!/bin/sh
echo "*.jpg"
echo '*.jpg'
로그인 후 복사

이렇게 하면 "*.jpg"가 두 번 인쇄됩니다.
작은따옴표는 더 제한적입니다. 변수 확장을 방지합니다. 큰따옴표는 와일드카드 확장을 방지하지만 변수 확장은 허용합니다.

#!/bin/sh
echo $SHELL
echo "$SHELL"
echo '$SHELL'
로그인 후 복사

실행 결과는 다음과 같습니다.

/bin/bash
/bin/bash
$SHELL
로그인 후 복사

마지막으로 이 확장을 방지하는 또 다른 방법은 이스케이프 문자(백슬래시)를 사용하는 것입니다.

echo *.jpg
echo $SHELL
로그인 후 복사

결과는 다음과 같습니다.

*.jpg
$SHELL
로그인 후 복사

여기서 제어 프로세스의 내용은 여기 문서에 약간 남아 있으며 이를 분석하겠습니다. 다음번.

위 내용은 리눅스 쉘 스크립트 기본 학습(IV)에 대한 자세한 소개입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿