shell常用知识

1.变量
(1)定义变量
变量名=变量值
如:num=10
(2)引用变量
$变量名
(3)清除变量值
unset 变量名
(4)从键盘获取变量值
/*在一行上显示和添加提示,使用read -p*/
read 变量名1 变量名2
(5)导出环境变量
作用是:将环境变量设为全局变量,让其他shell脚本识别该变量,如:
export DATA=250

查看环境变量:env
此时可看到环境变量中已经有 DATA;
这样,可在终端或者在其他的shell中直接读取:
echo "data=$DATA"
(5)预设变量
$#    -->    传给shell脚本参数的数量
$*    -->    传给shell脚本参数的内容
$1 $2 $3 ...    --->运行脚本时传递给其的参数,用空格隔开
$?    -->    命令执行后返回的状态,用于检查上一个命令执行是否正确(linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)
$0    -->    当前执行的进程名
$$    -->    当前进程的进程号
(6)特殊变量
""    -->    包含的变量会被解释
''    -->    包含的变成会被当成字符串解释

``    -->    反引号中的内容作为系统命令,并执行其内容,可以替换输出为一个变量
echo "today is `date`"

\    -->    转义字符,配合 echo -e 才起作用
echo -e "haha\ndudu"

()    -->    (命令序列),不影响当前shell中的变量
data=10
(data=100)
echo "data=$data"
结果是data=10

{}    -->    {命令序列},会影响当前变量
data=10
{data=100}
echo "data=$data"
结果是data=100
(7)判断变量是否存在
{num:-val}    -->    如果num存在,表达式的值就是num,否则为val,如:
echo ${num:-100}
结果是100

num=200
echo ${num:-100}
结果是200

{num:=val}    -->    如果num存在,表达式的值就是num,否则为val,同时将num的值赋值为val,如:
echo ${num:=100}
echo $num
结果为100,同时num的值也变成了100


2.字符串的操作


3.条件测试
test命令:用于测试字符串、文件状态和数字
test命令有两种格式:
test condition 或[ condition ]
使用方括号时,要注意在条件两边加上空格。

(1)文件测试
测试文件状态的条件表达式
-e    是否存在
-d    是目录
-f    是文件
-r    可读
-w    可写
-x    可执行
-L    符号连接
-s    文件非空
-c    是否字符设备
-b    是否块设备

(2)字符串测试
=    两个字符串相等
!=    两个字符串不相等
-z    空串
-n    非空串

(3)数值测试
-eq    数值相等
-ne    数值不相等
-gt    数1大于数2
-ge    数1大于等于数2
-le    数1小于等于数2
-lt    数1小于数2三

(4)复合语句测试
命令执行控制
&&    -->    command1 && command2    //当command1的执行成功(结果为0)时,才会继续执行command2;当command1的执行失败(结果不为0)时,不会继续执行command2
||    -->    command1 || command2    //当command1的执行成功(结果为0)时,不会继续执行command2;当command1的执行失败(结果不为0)时,才会继续执行command2;

多重条件判定
-a    --> and 两种情况同时成立    --> test -r file -a -x file    //file同时具有r和x权限时,才为true
-o    -->    or    两种情况任何一个成立
!    -->    相反状态    -->    test ! -x file    //当file不具有x权限时,才为true


4.控制语句
if case for while until break
(1)if
if [条件1];then
    执行第一段语句
elif [条件1];then
    执行第二段语句
else
    执行第三段语句
fi

(2)case
case $变量名称 in
    "第一个变量内容")
    程序段1
    ;; #相当于break
    
    "第二个变量内容")
    程序段2
    ;; #相当于break
    
    *) #相当于default
    其他程序段
    exit 1
esac

(3)for循环
形式一:
for((初始值;限制值;执行步阶))
    do
        程序段
    done
    
declare 用来声明shell变量,设置变量的属性,declare也可以写作typeset

形式二:
for var in con1 con2 con3...
    do
        程序段
    done
    
第一次循环时,$var的内容为con1;
第二次循环时,$var的内容为con2;
第三次循环时,$var的内容为con3;

(4)while
while [condition]
    do
        程序段
    done

(5)until
until [condition]
    do
        程序段
    done
当condition成立时,退出循环

5.函数
定义
/*function*/ 函数名(){
    命令
}

函数调用:
函数名 param1 param2......

使用return 提前结束函数并带回返回值
return        --> 从函数中返回,用最后状态命令决定返回值
return 0    --> 无错误返回
return 1    --> 有错误返回


    
加上可执行权限
chmod +x xxxx.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

renshuguo123723

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值