shell基础

 

  

  通过source或“.” 加载执行过的脚本,由于是在当前shell中执行脚本,因此在脚本结束之后,脚本中的变量(包括函数)值在当前shell中依然存在,而sh和bash执行脚本都会启动新的子shell执行,执行完后退回到父shell。因此,变量和函数无法保留。

 

  环境变量小结:

      1、环境变量名通常要大写

      2、环境变量可以在自身shell及子shell中使用

      3、常用export来定义环境变量

      4、执行env默认可以显示所有的环境变量

      5、输出时用“$变量名”,取消时用“unset 变量名”

      6、书写crond定时任务时要注意,脚本要用到的环境变量最好先在所执行的shell脚本中重新定义。

      7、如果希望环境变量永久生效,则可以将其放在用户环境变量文件或全局环境变量文件里。

 

      awk中的引用变量

awk \ETT ETT=123 ETT='oldgirl' ETT="tingting" ETT=`pwd`
awk加双引号 本身 本身 本身 本身
awk不加引号
awk加单引号 正确输出 语法报错
awk加单引号后再同时加双引号 正确输出 正确输出 正确输出 正确输出

 

    利用expr 判断是否为整数

        i=6

        expr $i + 6 &>/dev/null 

        echo $?   如果为0证明是整数

        也可以用expr match

        

[root@BACKUP-1-51 ~]# expr match "12" "[0-9][0-9]*$"
2
[root@BACKUP-1-51 ~]# expr match "12vsdv" "[0-9][0-9]*$"
0

        也可以用expr 判断文件扩展名是否符合要求

        

[root@BACKUP-1-51 ~]# expr "1.jpg" : ".*\.jpgf"
0
[root@BACKUP-1-51 ~]# expr "1.jpg" : ".*\.jpg" 
5

  

[root@BACKUP-1-51 ~]# char="I am oldboy"
[root@BACKUP-1-51 ~]# expr length "$char" #计算字符串长度
11
[root@BACKUP-1-51 ~]# echo ${#char}    #计算字符串长度
11
[root@BACKUP-1-51 ~]# echo $char | wc -L
11

[root@BACKUP-1-51 ~]# echo ${char} | awk '{print length($0)}'
11

  

  

[root@BACKUP-1-51 ~]# u=${k:-word}
[root@BACKUP-1-51 ~]# echo $u
word
[root@BACKUP-1-51 ~]# echo $k

[root@BACKUP-1-51 ~]# n=${k:=word}
[root@BACKUP-1-51 ~]# echo $n
word
[root@BACKUP-1-51 ~]# echo $k
word

  

            

posted @ 2017-02-14 15:45  黑夜不黑  阅读(107)  评论(0编辑  收藏  举报