当前位置:首页 » 网页前端 » shell脚本获取设备参数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

shell脚本获取设备参数

发布时间: 2022-07-17 07:10:36

‘壹’ 编写shell脚本获取本机的网络地址

获取网路设备参数的命令是ifconfig但是显示的信息太多,如何能从这些信息中过滤出ip地址呢?
其实很简单,只需要一行命令
[root@yf3 root]# ifconfig eth0 | grep 'inet' | awk '{print $2}' | sed -e "s/addr\://"
192.168.11.5
这样ifconfig中的无效信息就被过滤掉了,只剩下本机的ip:192.168.11.5

‘贰’ Linux shell 脚本 间接获取输入参数的方法

如果是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

‘叁’ shell脚本中怎么利用参数'

在执行脚本时,后面可以跟参数,例如
./xxx.sh
arg1
arg2
arg3
...
那么arg1
arg2
arg3
就是传入的参数,在xxx.sh脚本中要引用参数,则使用$1,$2,$3来引用。

‘肆’ shell脚本怎么用getopts获取一个参数

while getopts "r:p:h" para; do
case $para in
r) param_r=$OPTARG;;
p) param_p=$OPTARG;;
h) help ; exit 0;;
*) help ; exit 1;;
esac
done

‘伍’ 如何获取传入给shell脚本的最后一个参数

执行“nano test.sh”创建一个新的shell脚本。

脚本test.sh的内容如下:
#!/bin/sh
name=$1
echo "the ${name} are great man!"

给新创建的test.sh的脚本赋可执行权限,命令为“chmod 755 test.sh”。

执行'./test.sh "xiao wang"'命令,可以看到自己编写脚本的结果“the xiao wang are great man!”。

"name=$1"中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/...]从1开始为传递的参数。
linux系统除了提供位置参数还提供内置参数,内置参数如下:
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ... $0 ----当前程序的名称
$@----以"参数1" "参数2" ... 形式保存所有参数
$$ ----本程序的(进程ID号)PID
$! ----上一个命令的PID

‘陆’ 简述shell的参数

我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……

实例

以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

#!/bin/bash
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
为脚本设置可执行权限,并执行脚本,输出结果如下所示:

$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
执行的文件名:./test.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3
另外,还有几个特殊字符用来处理参数:

参数处理 说明
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。 如"$*"用“"”括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用“"”括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
#!/bin/bash

echo "Shell 传递参数实例!";
echo "第一个参数为:$1";

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";
执行脚本,输出结果如下所示:

$ chmod +x test.sh
$ ./test.sh 1 2 3
Shell 传递参数实例!
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3

‘柒’ linux shell 脚本读取用户输入的参数如何解决

while read var
do
echo $var
done
这样也是可以的,没错。
想回退的话用 ctrl+backspace

‘捌’ 如何从一个文件读取shell脚本执行参数

使用source命令可以把一个文件的内容读取到当前脚本来

例如:

a.conf 里面有一个变量 aa="1234"

在脚本里面使用source

#!/bin/bash
source./a.conf(source的时候最好用绝对路径,我这儿用的相对路径)
echo$aa