Bash中的特殊字符




-----------------------------------------------------------------Sun-------------------------------------------------------------------



一、 #符号

  # 注释

    行首以 # 开头(除#!之外)的是注释。#!是用于指定当前脚本的解释器。

                 结果为              


   $(( 2#101011))   是 数制转换


二、;分号

    1.命令分隔符

         使用分号可以在一行写两个或两个以上的命令


      2.终止case选项(双分号)

        创建一个变量初始化为b,然后用case语句判断。


三、引号


   1. 双引号“”

    2.单引号‘’

单引号、双引号用于用户把带有空格的字符串赋值给变量。
      str="Today is Monday"
      echo $str
Today is Monday

如果没有单引号或双引号,shell会把空格后的字符串解释为命令。
str=Today is Monday
bash: is: command not found 

单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。
     testvalue=100
     echo 'The testvalue is $testvalue'
The testvalue is $testvalue

    echo "The testvalue is $testvalue"
  The testvalue is 100

 



四、斜线 反斜线

  1.斜线 

      文件名路径分隔符。分隔文件名不同的部分(如/home/bozo/projects/Makefile)。也可以用来作为除法算术操作符

  2.反斜线

       一种对单字符的引用机制。\X 将会“转义”字符X。这等价于"X",也等价于'X'。


五、反引号 `

  command 结构可以将命令的输出赋值到一个变量中去。

 

  cp `mkdir back` test.sh back

   反引号中的先执行,然后执行拷贝cp命令。


六、冒号 :

  1.空命令

       bash的一个内建命令,退出码是0。与 true作用相同


   2.变量扩展/字串替换

    : > 文件   清空了这个文件  和 cat 、dev/null 文件  作用相同。但用 : 不会产生新进程,因为是内建命令。


七、问号 ?

     在双括号结构中,就是C中的三元操作符


八、美元符号 $

   1.变量替换

    a=5  $a 也是 5

   2.命令替换

     $(命令)

 

九、小括号 ()

  1.命令组

  在括号中的命令列表,将会作为一个子 shell 来运行。在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的。父进程,也就是脚本本身,将不能够读取在子进程中创建的变量,也就是在子shell 中创建的变量。

 

<span style="font-size:14px;">#!/bin/bash

a=123
( a=321;)
echo "a = $a"</span>

运行显示 a=123   说明在子shell内修改了的变量,在父进程调用时是不会显示修改后的。


   2.初始化数组

    

<span style="font-size:14px;">arr=(1 3 5 7 9)

    echo ${arr[3]}</span>

结果显示 7 


十、大括号 { }

    1.文件名扩展

     cp t.{txt,back}   复制 txt 的内容到 back 中

    2.代码块

      代码块,又被称为内部组,这个结构事实上创建了一个匿名函数(一个没有名字的函数)。然而,与“标准”函数不同的是,在其中声明的变量,对于脚本其他部分的代码来说还是可见的。


<span style="font-size:14px;">#!/bin/bash

a=123
( a=321; )                 // 小括号里的相当于局部变量
echo "a=$a"

{ a=321; }                //大括号里的相当于全局变量
echo "a=$a"</span>

结果是: 123    321


十一、中括号 []

 1.条件

测试条件测试表达式放在[ ]中。

<span style="font-size:14px;">#!/bin/bash

a=5
if [ $a -gt 10 ]    //-gt 大于  -lt 小于
then
echo "a: $a"
else
echo "a>10"
fi</span>


2.数组元素

在一个array结构的上下文中,中括号用来引用数组中每个元素的编号。


十二、尖括号 < > 重定向

  

test.sh > filename    重定向test.sh的输出到文件 filename 中。如果 filename 存在的话,那么将会被覆盖

test.sh &> filename 重定向 test.sh 的 stdout(标准输出)和 stderr(标准错误)到 filename 中。

test.sh >&2               重定向 test.sh 的 stdout 到 stderr 中。

test.sh >> filename 把 test.sh 的输出追加到文件 filename 中。如果filename 不存在的话,将会被创建。


十三、竖线 |  管道

   前面命令的输出是后面命令的输入。


十四、破折号 -

 1.选项,前缀

   在所有的命令内使用选项参数的话,前边都要加上“-”

 

  2.用于重定向stdin或stdout

    下面脚本用于备份最后24小时当前目录下所有修改的文件.

十五、波浪号 ~

  ~ 表示 home 目录


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值