shell脚本学习笔记

shell中文意思为壳,shell可以接受使用者的指令,来调用服务,shell的种类很多,而比较常见是Bash,头部声明#!/bin/bash,表示bash是解释脚本的程序 例如: #!/bin/bash echo "hallo word" 执行该脚本(注意:需要有可执行权限,sudo chmod +x hallo.sh) bash hallo.sh 也可以直接执行 ./hallo.sh 变量(首字符必须是字母,而且不能有bash的关键字,大小写敏感) data = “hallo” echo $data data = “word” echo ${data} 注意:如果使用单引号,单引号里面有变量的话,是无法生效的,而且还不能出现单引号,而且双引号可以使用变量和转义字符,美元符号($)只有在使用变量才需要,在定义,更新,删除变量都不需要 例如: name=“chenjunlin” data=“hallo, ${name} !” echo $data 获取字符串的长度 data=“hallo word” echo ${#data} 获取指定位置的字符 data=“hallo word” echo ${#data:5:8} 删除变量(不能删除只读变量) unset data echo ${data} 在shell脚本定义的变量只能在当前脚本交互中使用,可以通过export传递变量到子shell中,可以通过env或者export指令来获取当前shell的环境变量 参数 echo “hallo word”; echo “要执行的shell脚本:$0”; echo “参数为:$1”; ./hallo.sh abc 获取参数的个数:$# 以单一字符串的方式输出全部参数(要被双引号包裹):$* 以独立字符串的方式输出全部参数(要被双引号包裹):$@ 获取上个命令的状态(是否执行成功,0为成功,非0为失败):$? 获取当前脚本shell进程的ID:$$ 获取后台运行的最后一个进程的ID:$! 配合函数使用(参数也可以通过函数来传递) function abc(){ echo "参数1: $1" echo "被执行的脚本为: $0" } abc hallo ....

2021-11-23 · 3 min · Me