如果是bash,可以用indirect expansion来搞,语法为 ${!var}。
比如
foo=bar
bar=123
echo ${!foo}
会打印 123
再比如下面的脚本,依次打印脚本的各个输入参数。
#!/bin/bash
var=1
while [ $var -le $# ]
do
echo "Param $var is ${!var}"
let var++
done
不用indirect expansion,也可以用 eval, 比如
#!/bin/bash
var=1
while [ $var -le $# ]
do
eval echo "Param $var is \$$var"
let var++
done
假如你的installsh脚本中执行到某一句等待人工输入配置信息,这样的语句可能是
read var
意思是阻塞等待标准输入,将输入的内容赋值给var这个变量,接下来就根据var变量的内容进行后续安装 *** 作;
那么只要将这行命令改成 var=`cat file` 也就是读取预先准备的文件内容即可,此时var不是手动输入的内容了。接下来的 *** 作仍然是根据var变量的值安装
[TOC]
如果想查看当前所在工作路径并列出当前目录下所有的文件及属性信息,实现这个功能的脚本如下:
Shell脚本文件的名称可以任意,但为了避免被误以为是普通文件,建议将 sh 后缀加上,以表示是一个脚本文件
在上面的 examplesh 脚本中出现了三种不同的元素:
执行脚本有两种方式:
各变量的作用:
用测试语句测试一个文件是否为目录,然后通过 Shell 解释器内设 $ 变量显示上一条命令的返回值
在Shell终端中逻辑“与”的运算符号是 && ,它表示当前面的命令执行成功后才执行后面的命令
等号两边必须要有空格,才能进行逻辑等于
它表示把条件测试中的判断结果取相反值
整数比较运算符仅对数字 *** 作,且不能使用等号、大于号、小于号来判断。因为等号与赋值命令符冲突,大于号和小于号分别与输出重定向和输入重定向命令符冲突。因此一定要使用规范的整数比较运算符进行 *** 作。
示例:使用 free -m 命令查看内存使用量情况(单位MB),然后通过 grep Mem: 命令过滤出剩余内存量的行,使用 awk'{print $4}' 命令只保留第四列,最后用 FreeMem=`语句` 的方式把语句内执行结果复制给变量
示例1 :判断String变量是否为空,进而判断是否定义了这个变量
示例2 :引入逻辑运算符,判断语系LANG
以上就是关于Linux shell 脚本 间接获取输入参数的方法全部的内容,包括:Linux shell 脚本 间接获取输入参数的方法、shell脚本执行中如何自动读取需要配置的文件、编写Shell脚本---接受、判断用户参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)