关于shell script

#!/bin/bash  声明脚本使用的shell名称


变量的声明:name=value

不能有空格,name = value 会产生错误;同时value中也不能有空格如:name=a b也会产生错误,正确写法:

name="a b"(单引号和双引号的区别:"$name"会取出name的值,而'$name'直接解释出字面的表示)

转义字符\可以进行转换;

如果要将一个变量设置为一个命令的返回结果,有两种方式:

name=$(cmd)

name=`cmd` (反向单引号)

增加内容:PATH="$PATH":/home/bin



(1)echo命令:显示变量

echo $name或者echo ${name}

加-e表示解释\的转义

加-E表示忽略转义


echo -e "your name :$name"可以进行屏幕输出


(2)read命令:读取用户输入

read [-pt] name

-p后面接提示信息

-t后面接时间,表示等待用户的输入最长时间

read -p "please input ....:" name 可以读取用户的输入


(3)declare命令 bash可用,sh不可用

declare [-aixr] name=value

-a:定义为数组类型

-i:定义为整数类型

-x:定义为环境变量,同export

-r:设置为不可更改


(4)test命令:检测文件相关属性

test -e filename 检测文件是否存在

-f是否 存在且为文件

-d是否存在且为目录


test  -r  filename 检测文件是否可读

-w检测文件是否可写

-x检测文件是否可执行


&&与||:

cmd1&&cmd2:cmd1执行完毕且正确($?=0),开始执行cmd2;否则,cmd2不执行

cmd1||cmd2:cmd1执行完毕且正确($?=0),cmd2不执行;否则,cmd2执行


可以将test可&&、||结合使用如下:

test -e /dir && echo "exist" || echo "not exist"


(5)if判断

if [ 条件判断 ];then

...

elif[ 条件判断 ];then

...

else

...

fi


if条件判断里面可以用到 []判断

整数:

[n1 -eq n2] 两数值相等

-ne 不等

-gt 大于

-lt 小于

-ge 大于等于

-le 小于等于

字符串:

[-z string] 是否为空,空则为真

[-n string] 是否为非空,空为假

[str1 [!]= str2] 判断对等

注:if和括号以及括号中的空格很重要,少了会出错;


使用bash(sh)和source执行脚本的区别:

bash是在子进程里面执行,如果设置了一些变量,父进程中无法使用

(export可以将变量变成环境变量,使其能够在子进程中使用)

使用source执行脚本的时候,直接在父进程中执行,变量在脚本执行完毕之后仍然可以使用


几种循环方式:

while do done ,until do done (不定循环)

for do done (固定循环)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值