shell脚本参数(如何给shell脚本传参数)
一、shell脚本读取配置文件参数
1、读取配置文件时,将注释符#标记的行和空行全部过滤 sed-E'/^#.*|^*$/d'$env_file。
2、匹配指定参数相符的行并截取对应的值 awk-F"${param}=""/${param}=/{print\$2}"。
3、获得的结果可能有多个,取后一个值 tail-n1。
4、这3步都用|管道符连接,其作用是将当前的结果作为下一条命令的输入,连续处理以达到获取参数的终目的。
二、如何给shell脚本传参数
1、执行“nano test.sh”创建一个新的shell脚本。
2、echo"the${name} are great man!"
3、给新创建的test.sh的脚本赋可执行权限,命令为“chmod 755 test.sh”。
4、执行'./test.sh"xiao wang"'命令,可以看到自己编写脚本的结果“the xiao wang are great man!”。
5、"name=$1"中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/...]从1开始为传递的参数。
6、linux系统除了提供位置参数还提供内置参数,内置参数如下:
7、$#----传递给程序的总的参数数目
8、$?----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
9、$*----传递给程序的所有参数组成的字符串。
10、$n----表示第几个参数,$1表示第一个参数,$2表示第二个参数...$0----当前程序的名称
11、$@----以"参数1""参数2"...形式保存所有参数
三、编写Shell脚本---接受、判断用户参数
1、如果想查看当前所在工作路径并列出当前目录下所有的文件及属性信息,实现这个功能的脚本如下:
2、 Shell脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将.sh后缀加上,以表示是一个脚本文件
3、在上面的 example.sh脚本中出现了三种不同的元素:
4、用测试语句测试一个文件是否为目录,然后通过 Shell解释器内设$?变量显示上一条命令的返回值
5、在Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才执行后面的命令
6、等号两边必须要有空格,才能进行逻辑等于
7、它表示把条件测试中的判断结果取相反值
8、整数比较运算符仅对数字*作,且不能使用等号、大于号、小于号来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符进行*作。
9、示例:使用 free-m命令查看内存使用量情况(单位MB),然后通过 grep Mem:命令过滤出剩余内存量的行,使用 awk'{print$4}'命令只保留第四列,后用 FreeMem=`语句`的方式把语句内执行结果**给变量
10、示例1:判断String变量是否为空,进而判断是否定义了这个变量
11、示例2:引入逻辑运算符,判断语系LANG
四、shell 脚本参数 路径怎么设置
1、linux系统除了提供位置参数还提供内置参数,内置参数如下:
2、$#----传递给程序的总的参数数目
3、$?----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
4、$*----传递给程序的所有参数组成的字符串。
5、$n----表示第几个参数,$1表示第一个参数,$2表示第二个参数...$0----当前程序的名称
6、$@----以"参数1""参数2"...形式保存所有参数