이 글에서는 주로 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 'ok'; else echo 'no'; 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 ':$' /etc/inittab egrep ‘^hello$' file
9、> 大于号
输出重定向
echo '123' >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
입력 리디렉션
미만 로그인 조건 테스트
= 등호 변수 할당 - 예를 들어 : 변수 a=10
설정 테스트의 등호 - 예: [ a=b ] 변수 a가 b
와 같은지 확인 수치 비교 == - 예: (( a==20 ) ) 변수 a가 20
산술 연산의 더하기 기호 - 예: 1+3
정규식에서 1개 이상의 선행 문자 - 예 예: ab+c는 ab와 c 이상의 문자 사이에서 1이 일치함을 의미합니다.
13, >>
출력 리디렉션 추가 - 예: echo "123" >> .txt
123을 test.txt 파일에서
tar -cvf - /home | tar -xvf -
egrep ‘^hello$' file
解决变量赋值空格的问题
例如: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$' file
위 내용은 Shell의 특수 문자 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!