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编程学习记录的主要内容,如果未能解决你的问题,请参考以下文章