前言
众所周知shell既是类Unix操作系统的命令解析器,用于解释执行用户输入的一连串命令,它类似于DOS下的command和后来Windows的cmd.exe。同时shell也是一种程序设计语言。作为命令解释型的脚本语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它预定义了各种环境变量,保留了一些关键字以及一些特殊字符的含义,并提供了许多在高级语言中才具有的控制结构,包括循环和分支判断。
本文将给大家介绍关于Shell特殊字符用法的相关内容,话不多说,来一起看看详细的介绍:
1、;分号
连续运行命令
# ifdown eth0;ifup eth0
2、| 管道
正则表达式中表示或者
# 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"
6、# 井号
# 表示注释
$# 表示位置参数的个数
# echo $#0
${#变量名} 表示变量的长度
# a='hello'# echo ${#a}5
${#变量名[@]} 表示数组的个数
# a=(1 2 3)# echo ${#a[@]}3
7、!惊叹号
将命令或者条件表达式的返回值取反
# if ! [ 1<2 ]; then echo 'ok'; else echo 'no'; fiok
执行历史命令
# history 1 ls2 tail test1.txt3 mysql -uroot -p1234 ls /tmp/5 cd /tmp/[root@localhost ~]# !994ls /tmp/account.sql data.sql mysql.sock t1.txt t2.txt
vi或者ftp中执行外部shell命令
例如:在vim中,想要执行一条命令,就在末行模式,输入!感叹号后面加上要执行的命令
间接应用变量
例如:${!a}
---- 间接取b 的值
8、$ 美元符号
取变量的值
# a=10# echo $a10
正则表达式表示行尾
egrep ':$' /etc/inittab egrep ‘^hello$' file
新闻热点
疑难解答