Shell의 특수 문자 요약

巴扎黑
풀어 주다: 2017-08-15 15:55:38
원래의
1948명이 탐색했습니다.

이 글에서는 주로 Shell의 특수 문자에 대한 관련 정보를 요약합니다. 이 글에는 &, #,! 문자가 포함되어 있습니다. , $, 기호보다 큼, 작은따옴표, 큰따옴표 등과 같은 일련의 특수 문자의 사용법이 샘플 코드를 통해 매우 자세하게 소개되어 있어 공부나 업무에 필요한 모든 사람에게 확실한 참고 학습 가치를 제공합니다. 아래를 살펴볼 수 있습니다.

머리말

우리 모두 알고 있듯이 셸은 Unix 계열 운영 체제의 명령 구문 분석기로서 사용자가 입력한 일련의 명령을 해석하고 실행하는 데 사용됩니다. Windows에서는 나중에 cmd.exe를 사용합니다. 동시에 쉘은 프로그래밍 언어이기도 합니다. 명령 해석 스크립트 언어로서 사용자가 입력한 명령을 대화식으로 해석하고 실행하거나 일련의 사전 설정된 명령을 자동으로 해석하고 실행하는 프로그래밍 언어로서 다양한 환경 변수를 미리 정의하고 일부 키워드 및 일부 특수 문자의 의미를 유지합니다. , 루프 및 분기 판단을 포함하여 고급 언어에서만 사용할 수 있는 많은 제어 구조를 제공합니다.

이 기사에서는 Shell 특수 문자 사용에 대한 관련 내용을 소개합니다. 더 이상 고민하지 말고 자세한 소개를 살펴보겠습니다.

1. 세미콜론

지속적으로 명령 실행하기


# ifdown eth0;ifup eth0
로그인 후 복사

2, | 정규식의 Pipe

또는


# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符
로그인 후 복사

이전 명령의 표준 출력이 다음 명령의 표준 입력으로 사용됩니다


# ifconfig|grep eth0 表示ifconfig查出来的信息然后过滤出eth0的这一行
로그인 후 복사

3、&

실행을 위해 명령을 백그라운드에 두세요


# mysqld_safe --user=mysql & 将MySQL放到后台启动
로그인 후 복사

표준 출력 및 표준 오류 출력을 나타냅니다


# ifconfig &>/dev/null 将ifconfig执行得到的结果输出到/dev/null里面
로그인 후 복사

4, &&

이 이전 명령은 값이 0인 경우에만 실행합니다. 다음 명령은


# ls && echo "ok"
로그인 후 복사

5, ||

다음 명령은 이전 명령의 반환 값이 0이 아닌 경우에만 실행됩니다. ㅋㅋㅋ 의 길이를 나타낸다 변수


# lls || echo "ok"
로그인 후 복사

${#변수 이름[@]}은 배열의 수

# echo $#
0
로그인 후 복사


7개를 나타냅니다. 느낌표


는 명령 또는 조건식의 반환 값을 반전합니다


# a='hello'
# echo ${#a}
5
로그인 후 복사

Execute Historical Commands


# a=(1 2 3)
# echo ${#a[@]}
3
로그인 후 복사

vi 또는 ftp

에서 외부 셸 명령을 실행합니다. 안으로 vim, 명령을 실행하려면 마지막 줄 모드로 입력하세요! 느낌표 뒤에 실행할 명령을 추가합니다 변수의 간접 적용

예: ${!a} ---- b



의 값을 간접적으로 취함 8, $ 달러 기호


변수 값 가져오기


# if ! [ 1<2 ]; then echo &#39;ok&#39;; else echo &#39;no&#39;; fi
ok
로그인 후 복사

정규 표현식은 줄의 끝을 나타냅니다.


# history 
1 ls
2 tail test1.txt
3 mysql -uroot -p123
4 ls /tmp/
5 cd /tmp/
[root@localhost ~]# !994
ls /tmp/
account.sql data.sql mysql.sock t1.txt t2.txt
로그인 후 복사

${!a} ---- 间接取b 的值

8、$ 美元符号

取变量的值


# a=10
# echo $a
10
로그인 후 복사

正则表达式表示行尾


egrep &#39;:$&#39; /etc/inittab 
egrep ‘^hello$&#39; file
로그인 후 복사

9、> 大于号

输出重定向


echo &#39;123&#39; >test.txt 表示将123 输入到文件test.txt中 条件测试中的大于号
로그인 후 복사

11、< 小于号

输入重定向

条件测试中的小于号

= 等号

变量赋值 - 例如:设置变量a=10

条件测试中的等号 - 例如:[ a=b ] 判断变量a是否等于b

数值比较 == - 例如:(( a==20 )) 判断变量a是否等于20

12、+ 加号

算术运算中的加号 - 例如:1+3

正则表达式中1个或多个前面的字符 - 例如:ab+c 表示匹配ab和c之间有1个或者多个 字符

13、>>

输出重定向追加 - 例如:echo "123" >> test.txt
9、>

출력 리디렉션

# passwd <<end
> 123
> 123
> end
로그인 후 복사


11, < 미만 기호



입력 리디렉션


미만 로그인 조건 테스트

= 등호 변수 할당 - 예를 들어 : 변수 a=10

설정 테스트의 등호 - 예: [ a=b ] 변수 a가 b

와 같은지 확인 수치 비교 == - 예: (( a==20 ) ) 변수 a가 20


12인지 확인, + 더하기 기호



산술 연산의 더하기 기호 - 예: 1+3


정규식에서 1개 이상의 선행 문자 - 예 예: ab+c는 ab와 c 이상의 문자 사이에서 1이 일치함을 의미합니다.


13, >>
출력 리디렉션 추가 - 예: echo "123" >> .txt 123을 test.txt 파일에서

🎜🎜🎜🎜14, <<🎜🎜🎜🎜🎜here document🎜🎜🎜에 추가합니다. 예: 🎜🎜🎜🎜🎜
tar -cvf - /home | tar -xvf -
로그인 후 복사
🎜비밀번호 변경 사용자 루트의. 🎜🎜🎜🎜🎜15 ​​- 빼기 기호 🎜🎜🎜🎜🎜 빼기 기호 산술 연산 - 예: 10-2🎜🎜🎜 명령 옵션 - 예: ls -l🎜🎜🎜 마지막 작업 디렉터리 - 예 : cd -🎜🎜🎜와일드카드 및 정규식은 범위를 나타냅니다. 예: [a-z]🎜🎜🎜🎜🎜
egrep ‘^hello$&#39; file
로그인 후 복사
로그인 후 복사
🎜은 출력 스트림 또는 입력 스트림을 나타냅니다.🎜🎜🎜이전 출력은 파이프라인을 통해 후속 명령에 제공되며, 이전 압축, 압축 해제🎜🎜🎜🎜🎜16, '' 작은따옴표🎜🎜🎜🎜

解决变量赋值空格的问题

例如:a='1 2'

阻止shell替换

17、"" 双引号

解决变量赋值空格的问题

例如:a="1 2"

阻止shell部分字符替换,对$、!等无效

18、`` 反引号 相当于 $()

命令行替换

例如:可以设变量a=`ls`

19、% 百分号

算术运算中的模运算

例如:echo $((100%10)) 就是100除以10的余数为0

vi中替换操作中表示所有行 (末行模式下,替换所有前面加 %)

例如:在末行模式下输入 :% s/D/d 表示将文本中的所有的D替换为d

20、() 单圆括号

子shell中执行命令,会继承父shell的变量

括起数组元素

例如:定义一个数组 a=(1 2 3 4)

21、(()) 双圆括号

算术运算

例如: echo $((10/2)) 结果就是5

整数比较测试

例如: (( 10>2 )) 判断10是否大于2

22、[] 单方括号

通配符和正则中表示匹配括号中的任意一个字符

例如: [abc] 表示匹配abc中的任意一个字符

条件测试表达式

例如: [ -f /etc/passwd ] // 测试是不是文件

数组中下标括号

例如:echo ${a[0]} 表示取数组中下标为0的值

23、[[]] 双方括号

字符串比较测试

例如: [[a=b]] 用来字符串的比较

24、. 英文句点号

正则中表示任意1个字符

例如:a...b 表示 匹配 a和b之间夹三个字符的字符串

当前shell执行脚本命令

例如: ./test.sh 执行当前路径下的shell脚本test.sh

表示当前目录

例如:cd ./bgk 进入当前目录下的bgk目录下

25、{} 大括号

通配符扩展 abc{1,2,3}

正则表达式中表示范围

例如:a{3} 匹配3个 a

for i in {1...10} 循环指定范围

匿名函数{ cmd1;cmd2;cmd3;} &> /dev/null

{ } 里面的命令,是在当前shell执行

注意: { } 第一条命令前面要有空格,后面的命令要有分号

括起变量名 ${abc}a

26、/ 正斜杠

算术运算中的除法

例如:echo $((10/2)) 结果就是5

根目录或路径分割符

例如:cd /usr/local/ 表示路径

27、^

在通配符中表示取反

例如:[^abc] 表示匹配除了abc外的任意一个字符

在正则表达式中表示以什么开头

例如:


egrep ‘^hello$&#39; file
로그인 후 복사
로그인 후 복사

위 내용은 Shell의 특수 문자 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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