Bash特殊符号

2017-11-02  本文已影响95人  Zhang21

在编写shellscripts的时候,特殊符号也有其重要的功能。
具体描述如下:

符号 描述 栗子
#! shellban,申明脚本所使用的shell #!/bin/bash
\ 转义字符 \ 回车
l 管道 stdout l grep
>,>> 输出重定向 >1.txt
<,<< 输入重定向 <1.txt
2> 错误输出 2>error.txt
; 连续命令分隔符 cmd1; cmd2
&& 与,只有当前命令完成后才执行后一个命令 cmd1 && cmd2
ll 或,或此或彼 cmd1 ll cmd2
~ 用户家目录 cd ~
# 注释符 #it's a comments
$ 取用变量前导符 $PATH或${PATH}
& 工作控制,将命令放入后台(bg) command&
*,?,[],[-],[^] 通配符 .sh,?.sh,[a-z].txt
! 逻辑运算'非'not !=
=,两边无空格 赋值符号 name=zhang
=,两边有空格 比较符号 if [ $name = zhang ]
$0, 代表脚本自身 zhang.sh
$1,$2... 第1个/2个...变量 ./zhang.sh start...
$# 命令后面参数个数 if [ $# -ne 2 ];then echo "Usage: ./xx.sh arg1 arg2"
$@ 代表"$1","$2","$3"...之意,每个变量是独立的 xx
$* 代"$1 $2 $3 ..."之意
'单引号' 单引号内特殊字符仅为一般字符 echo '$host'--$host
"双引号" 双引号内特殊符号,可保有原本特性 echo "$host" --localhost
反引号 运行命令,也可用 $()代替 date或 $(date)
() 以子shell方式执行 ($(date))
{} 命令区块的组合
set 查看所有变量 set
unset 取消变量 unset name,没有$符号
export 使某变量成为环境变量 export name,没有$符号
PS1 命令提示符 $PS1
PS2 第二行以后的提示字符 $PS2
$? 命令状态码,成功为0 $?
$$ 当前shell的PID echo $$
shift 移动参数 当使用shift后,$1=$2;再次shift后,$1=$3...
上一篇下一篇

猜你喜欢

热点阅读