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... |