Shell编程学习记录

Posted yoshar511462

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程学习记录相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

  [[email protected] ~]# echo ‘$PWD‘
  $PWD  

  [[email protected] ~]# echo "$PWD"

  /root 

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

  [[email protected] ~]# echo ‘$(echo hello world)‘
  $(echo hello world)
  [[email protected] ~]# echo "$(echo hello world)"
  hello world

[[email protected] ~]# echo ‘`echo hello world`‘
`echo hello world`
[[email protected] ~]# echo "`echo hello world`"
hello world 

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

[[email protected] ~]# echo ‘$ ` " \‘
$ ` " \
[[email protected] ~]# 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编程学习记录的主要内容,如果未能解决你的问题,请参考以下文章

大数据学习初体验:Linux学习+Shell基础编程+hadoop集群部署

Shell 脚本编程基础

shell编程学习2

shell编程学习1

shell编程入门

shell编程