shell脚本命令

定义变量 不加 $ 符号  定义之后调用时 加 $ 符号 

加{}是为了帮助解释器识别变量的边界,例如 "${qkx}name" 不加的话 $搞不懂是qkx还是qkxname.

定义只读变量  readonly  eg.  qkx = 'ssss' > readonly qkx

删除变量  unset

shell中 三种变量
    局部变量 : 在脚本或命令中定义,仅在当前shell实例中有效。
    环境变量 : 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。
    shell变量 : shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量。

单引号 双引号 
单引号里面的内容都会原样输出 
双引号中可以引用变量 和 转义符

获取字符串长度:{# str}   string="abcd"  >  echo ${#string}  输出 4

提取子字符串 : string = 'abcdef' > ${string:1:4} > 返回bcde 即相当于左闭右闭  索引从0开始 

查找子字符串位置 : string = 'abcdef' > echo `expr index "$string" c` > 返回(3) 

shell只支持一维数组  array = (value0,value1,value2..)

读取数组: ${array[n]} n为下标

获取数组中所有元素 ${array[@]}

获取数组的长度 : ${# array[@]} 或者 ${# array[*]}

shell注释: 以#开头 

多行注释: 
    :<<EOF
    注释内容...
    注释内容...
    注释内容...
    EOF  (EOF在这里可为任意的符号)

shell 传递参数  $0表示带路径的文件名  $1就指第一个参数  $#显示参数的个数  

$@ S*都是显示所有参数 但二者有所不同 
假设在脚本运行时写了三个参数 1、2、3,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。 

shell 运算
数学运算符
关系运算符
布尔运算符
逻辑运算符
字符串运算符
文件测试运算符
https://www.runoob.com/linux/linux-shell-basic-operators.html

echo命令 用于字符串的输出
显示换行 / 不换行 (使用时前面都要加上 -e 开启转义)
echo -e "ok \n"
echo "fine"
上面的返回
ok
fine
不换行
echo -e "ok \c"
echo "fine"
上面的返回 ok fine
将结果定向至文件: echo "qkx" > myfile
显示命令执行的结果 加 反引号(前后都要加) 例如 echodate` 返回当前日期

printf同样用于输出 有很多的参数 具体见 https://www.runoob.com/linux/linux-shell-printf.html

test命令用于检测某个条件是否成立 可用于数字 字符 文字 三方面的测试
具体见 https://www.runoob.com/linux/linux-shell-test.html

定时运行shell脚本

参考
https://blog.csdn.net/liao392781/article/details/79278811?utm_medium=distribute.pc_relevant.none

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容