码迷,mamicode.com
首页 > 系统相关 > 详细

Shell编程学习记录

时间:2019-07-15 23:54:20      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:判断目录   空字符串   变量   通配符   脚本   替换   家目录   单引号   profile   

1.shell中单引号和双引号的区别:

1)、单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原

  封不动的使用,唯一需要注意的点是不允许引用自身;

2)、双引号属于弱引用,它会对一些被引起来的字符进行特殊处理,主要包括以下情况: 

  1:$加变量名可以取变量的值 ,比如:

  [root@localhost ~]# echo ‘$PWD‘
  $PWD  

  [root@localhost ~]# echo "$PWD"

  /root 

  2:反引号和$()引起来的字符会被当做命令执行后替换原来的字符,比如:

  [root@localhost ~]# echo ‘$(echo hello world)‘
  $(echo hello world)
  [root@localhost ~]# echo "$(echo hello world)"
  hello world

[root@localhost ~]# echo ‘`echo hello world`‘
`echo hello world`
[root@localhost ~]# echo "`echo hello world`"
hello world 

  3:当需要使用字符($  `  "  \)时必须进行转义,也就是在前面加\ ; 

[root@localhost ~]# echo ‘$ ` " \‘
$ ` " \
[root@localhost ~]# echo "\$ \` \" \\"
$ ` " \

 

2.shell通配符(元字符):

 

3.If条件判断语句:

shell脚本开始是固定表达式:#!/usr/bin/bash定义用哪个解释器执行叫做shellbang

if (表达式)

  语句1

else

  语句2

fi

逻辑运算符解析:

-f:判断文件是否存在 eg:if [ -f filename ]

-d:判断目录是否存在eg: if [ -d dic ]

-eq:等于 整型比较

-ne:不等于  整型比较

-lt :小于

-gt :大于

-le :小于或者等于

-ge:大于或等于

-a:双方都成立(and)逻辑表达式 -a 逻辑表达式

-o:单方成立(or)逻辑表达式

-z :空字符串

shell特性补充:

/bin/bash -n 脚本名称:测试脚本是否存在问题,如果没有输出则脚本没有问题。

>符号是覆盖原来的内容,>>是追加或者添加的意思.

$0当前脚本名称(环境变量)$1(环境变量)脚本需要输入的参数,$?前一个命令的返回值

``(反引号)代表里面的代码执行会出现一个结果

$UID系统环境变量,显示当前的登陆用户,如果是0就是root用户

bash和./都是在子shell中执行,.bash和source +脚本名都是在当前shell执行,如果想要执行的脚本影响到当前shell则采用后面两种执行方法。

系统级别的文件/etc/profile /etc/bashrc 

用户级别的文件:~./bashrc是用户家目录下的文件,~/.bash_profile

<<-EOF

输入

EOF,把输入传给程序去执行

命令排序:

;不具有逻辑判断,&& || 具有逻辑判断

命令 1 &&  命令2,命令1执行成功才执行命令2

命令 1 ||  命令2,命令1执行失败才执行命令2

命令 1; 命令2,命令1执行成功不成功都会执行命令2

命令 &--后台执行

命令 &>/dev/null-- 混合定向(标准输出1,错误输出2)

嵌套判断:

if [条件];then

  语句

elif[条件];then

  语句

else

  语句

fi

((条件计算用了运算符号,如用4>5)),[[判断目录是否存在或者用比较符号不是运算符号]]

 

Shell编程学习记录

标签:判断目录   空字符串   变量   通配符   脚本   替换   家目录   单引号   profile   

原文地址:https://www.cnblogs.com/yoshar511462/p/11192368.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!