shell 快速入门的知识点 待续。。

2019-12-06  本文已影响0人  天空蓝雨

shell本身是一个命令解释器,介于操作系统的内核(kernel)态和用户态之间,可以执行系统调用及系统命令等,让用户以此来与操作系统实现互动。

目前,大部分Linux系统预设的shell都是bash。

老规矩  : # ! /bin/sh  指定解释器的位置 ,这样执行脚本,chmod  +x  xx.sh     就可以直接  ./xx.sh  了 

(注意直接./ 运行,要先获得可执行权限)

/bin/sh      hello_world.sh  或者 命令行直接运行,这脚本第一行指定的解释器,没就没用了

(# shell中只有单行注释)

shell 中的变量:

和Python等动态语言类似,Bash变量在使用时直接定义,如 aaa="sadfas"

注意变量,只能是    数字 、字母、 下划线  (数字不开头)组成。另外 = 两边不能有空格(会报错哦)

使用:$name  或者${name}  (推荐,因为这样可以更好地,分割变量 )

readonly  name  ——》 设置 下面的语句只能读取,不能更改此变量

unset  name   ——》 删除此变量,只读时,不可删除

local            一般用于局部变量声明,多在在函数内部使用

shell    脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止   函数的参数自然是属于local 的,函数内优先使用local 定义的变量

shell 字符串 :

有 '   ' 单引号  和  "  " 双引号 之分 

单引号: 里面不能有单引号 ,用 \ 转义也不行  

单引号:中对变量引用是无效的,单引号中的字符都会原样输出

双引号:里面可以有转义字符,可以有变量

字符串亦可以不用引号  (奇葩)

字符串长度  ${#name}  字符串切片 ${name:1:4}   截取第二个和第四个

字符串 拼接  :

str1=$name$url    #中间不能有空格  (不加引号)

str2="$name $url"    #如果被双引号包围,那么中间可以有空格

str3=$name": "$url    #中间可以出现别的字符串  (这种写法容易出错哦)

str4="$name: $url"    #这样写也可以  

str5="${name}Script: ${url}index.html"    #这个时候需要给变量名加上大括号 (最常见的写法了)

只有当变量是纯数字时,该变量才是“数字类型的”,否则就是字符串类型的。

后续  :

执行命令,可以直接写,如果拿到结果到变量存储,就要用:

xx=`....` 这种形式  

函数传参  可以  直接  func   a b c d  # 然后函数里面用  $1   引用第一个参数    $2  (第二个参数,$0 是脚本名)

从键盘读入数据  :

read   -p "提示文字" -n 6 (6 位长度 , 6位自动结束) -t 5 (限时5 s) -s password (隐藏输入内容)  最后一个password 相当于变量 ,可以在后面的语句中使用它  

如   read  -p "请输入用户名"  name

echo  " your name is ${name} "

read  -p " 请输入密码 "  -s password1

read  -p " 请请确认密码 "  -s password2

if [ password1 != password2 ]    

then

    echo "两次输入的密码不一致"

fi

获得 函数返回值:

 $?  上一句命令的返回值,如果没有返回值,则不出错则,默认返回值为1

例如、echo  "aa"   这个命令的返回值就是 "aa" 

运算符  : 这个是重点啊,有缘再写吧

数学运算符  :

关系运算符:

布尔运算符:

逻辑运算符:

字符串运算符:

文件测试运算符:

https://www.cnblogs.com/include/archive/2011/12/09/2307905.html    csdn  shell 的 if 判断

https://blog.csdn.net/weixin_37569048/article/details/80039941     CSDN  shell 脚本if判断多个条件

上一篇下一篇

猜你喜欢

热点阅读