shell学习之-特殊字符

                             shell中的特殊字符

;
分隔符号,用来表示一行执行多条命令
    echo hello; echo there
    if [ -f "$file" ]; then
        cd "$file"
    fi

;;
case 的选项终止符
ex:
    case "$var" in
    1) echo "1=$var" ;;
    2) echo "2=$var" ;;
    esac

.
1)相当于source命令
2)文件名第一个字符,变文件可见为隐藏
3)做目录时,表示当前目录
ex:
    cd .
4)在正则表达式中,匹配单个字符

"
部分引用."STRING"阻止了一部分特殊字符

'
全引用. 'STRING' 阻止了全部特殊字符

,
在算数运算中和C语言的逗号作用相似
ex:
    let "t2=((a=4, 5/3))"     #t2=5/3

/
1)转义字符,相当于''或""
2)用来表示一行还没有结束

/
1)路径分隔符或除法运算符
2)在sed中用来表示一个单词的结束

`
后置引用。由于命令替换


:
1)与True命令相同,表示什么都不干
ex1:
    if [***]
    then :                      #什么都不作,为了引出下面的分支
    else
        echo "test :"
    fi

ex2:
    while :                      #相当于while true
    do
        echo "test :"
    done
2)作为/etc/passwd和$PATH字符间的分隔符

!
取反操作符

^
1)sed,grep中表示行首
    sed -e '/^$/ d' filename  #删除空白行

2)在正则表达式中表示取反
    grep '^[^ad]' filename      #输出行首不是字母a或者d开头的行

*
1)文件名或正则表达式中(但这两者却是不同的)的万能匹配符
2)数学乘法

**
乘法密运算

?
1)在正则表达式中表示单个字符的匹配


$
1)变量替换
ex:
    var=8
    echo $var   #8
2)正则表达式中的行结束符
    sed -e '/^$/d' filename #删除文件中的空被行

${}
参数替换,见9.3节.

$()
用来进行命令的运行,相当于``

$*,$@
所有的位置参数,被作为一个单词.
注意:"$*"和"$@"必须被""引用.

$#
表示参数的个数,注意参数的个数不包含命令本身在内
 test.sh a b c
 echo "$#"          #输出的结果是3


$?
退出状态变量.$?保存一个命令/一个函数或者脚本本身的退出状态.


$$
进程ID变量.这个$$变量保存运行脚本进程ID

()
1)命令组     ex: (echo "1"; echo "2" )
2)数组初始化  ex:  array=(1,2,3,4)
说明:它的命令会在子shell中运行,所以其内部的变量对于外面是不可见的

{}
1)代码块
cp file22.{txt,backup}
# 拷贝"file22.txt" 到"file22.backup"中

5)变量内部替换
ex:
    a=1122
    b=${a/11/gg}    #b=gg22

[]
1)用于test的表达式中   if [ -x "$file" ]; then  **** fi;
2)数组元素     array[1]=1; echo ${array[1]}
3)正则表达式时的匹配字符的一个范围:

(())
一般是用于数学计算

[[]]
可以进行算数运算并返回一个逻辑的值

与函数的{}不同的是,该括号里声明的变量对于外部代码来说还是可见的。
2)代码块的操作
ex:
{
    echo "rpm check"
    rpm -qpi *.rpm
} > "$test"
3){} /;
find 的命令的后来的部分。注意";"是find 命令的结束。


4)大括号扩展,如:
cat {file1,file2,file3} > combined_file
# 把file1,file2,file3连接在一起,并且重定向到combined_file中.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值