linux shell学习笔记2(变量和参数)

1.在赋值的前后一定不要有空格,否则系统会将变量当作命令来运行

   如果:  "VARIABLE =value"

   脚本将尝试运行一个"VARIABLE"的命令,带着一个" =value"参数

 

2.   hello="A B   C    D"

      echo $hello  # A B C D             使用变量替换,空格被过滤掉了

      echo "$hello" # A B   C    D      使用引用变量,能够保留其中的空格

      echo '$hello'   # $hello             使用单引号全引用,会将$作为符号输出,相当于"/$hello"

 

3.  unset 将一个变量设为空

     空值变量做算术运算,相当于0

 

4.  = 赋值,使用let赋值

     a=879

     echo "The value of /"a/" is $a"

 

     let a=16+5

     echo "The value of /"a/" is now $a"

 

     a='ls -l'

     echo $a      #ls-l 空的部分(包括换行)被去除了

     echo "$a"   #引用正常,输出合适结果

 

     使用$(...)机制进行变量赋值,跟' '的作用类似

     R=$(cat  /etc/redhat-release)

     arch=$(uname -m)

 

5.  Bash变量不对类型进行区分,本质上Bash变量都是字符串

     a=2334

     let "a+=1"

     echo "a=$a"                #a=2335

 

     b=${a/23/BB}             #将23替换成BB

     echo  "b=$b"               #b=BB35

 

     let "b+=1"

     echo  "b=$b"               #b=1

 

6.  特殊变量类型

     local  variables

     enviornental   variables  环境变量

     position  parametres   $0, $1, $2 ...

     $0就是脚本文件的文字,$1就是第1个参数,$2第二个参数...

     $9以上就要用大括号:

     ${10},${11},${12}

     $*,$@,表示所有的位置参数

 

7.  basename命令去掉一个路径名(文件名)的目录部分和后缀部分,只保留文件名:

     例如:

     basename /usr/bin/sort   #sort

     basename include/stdio.h .h  #stdio

 

8.  args=$#    #获得参数个数

     lastarg=${!args}   #获得最后一个参数

 

     #或 lastarg=${!#} 但 lastarg=${!$#}会报错

 

9.  shift命令,将参数的顺序左移

     $1<-$2<-$3...

     但脚本名$0不变

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值