Unix / Linux-쉘 대체

대체 란 무엇입니까?

쉘은 하나 이상의 특수 문자를 포함하는 표현식을 발견하면 대체를 수행합니다.

여기서 변수의 인쇄 값은 해당 값으로 대체됩니다. 동시에,"\n" 새 줄로 대체-

#!/bin/sh

a=10
echo -e "Value of a is $a \n"

다음 결과를 받게됩니다. 여기-e 옵션을 사용하면 백 슬래시 이스케이프를 해석 할 수 있습니다.

Value of a is 10

다음은없는 결과입니다. -e 옵션-

Value of a is 10\n

echo 명령에서 사용할 수있는 다음 이스케이프 시퀀스-

Sr. 아니. 탈출 및 설명
1

\\

백 슬래시

2

\a

경고 (BEL)

\b

역행 키이

4

\c

후행 줄 바꿈 억제

5

\f

양식 공급

6

\n

새 줄

7

\r

캐리지 리턴

8

\t

수평 탭

9

\v

수직 탭

당신은 사용할 수 있습니다 -E 백 슬래시 이스케이프 해석을 비활성화하는 옵션 (기본값).

당신은 사용할 수 있습니다 -n 새 줄 삽입을 비활성화하는 옵션.

명령 대체

명령 대체는 쉘이 주어진 명령 세트를 수행 한 다음 명령 대신 출력을 대체하는 메커니즘입니다.

통사론

명령 대체는 명령이 다음과 같이 주어질 때 수행됩니다.

`command`

명령 대체를 수행 할 때 작은 따옴표가 아닌 역 따옴표를 사용해야합니다.

명령 대체는 일반적으로 명령의 출력을 변수에 할당하는 데 사용됩니다. 다음 예제는 각각 명령 대체를 보여줍니다.

#!/bin/sh

DATE=`date`
echo "Date is $DATE"

USERS=`who | wc -l`
echo "Logged in user are $USERS"

UP=`date ; uptime`
echo "Uptime is $UP"

실행하면 다음과 같은 결과를 받게됩니다.

Date is Thu Jul  2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

가변 대체

변수 대체를 사용하면 쉘 프로그래머가 상태에 따라 변수 값을 조작 할 수 있습니다.

가능한 모든 대체에 대한 다음 표는 다음과 같습니다.

Sr. 아니. 양식 및 설명
1

${var}

var 값을 대체하십시오 .

2

${var:-word}

경우 var에 null 또는 해제는, 단어는 대체됩니다var. var 의 값은 변경되지 않습니다.

${var:=word}

경우 var에 null 또는 해제는, VAR는 값으로 설정됩니다word.

4

${var:?message}

경우 var에 null 또는 설정 해제, 메시지를 표준 오류에 인쇄됩니다. 이것은 변수가 올바르게 설정되었는지 확인합니다.

5

${var:+word}

경우 VAR이 설정되어, 단어 VAR 대체됩니다. var 의 값은 변경되지 않습니다.

다음은 위 대체의 다양한 상태를 보여주는 예입니다.

#!/bin/sh

echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"

echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"

unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"

var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"

echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

실행하면 다음과 같은 결과를 받게됩니다.

Variable is not set
1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set

3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix