shell入门2

xiaoxiao2022-06-11  24

Shell 传递参数

我新建了一个文件,在说参数传递之前我们需要学习下for循环的基本语法:语法如下所示:

for var in var1 var2 var3 var4 do #具体代码 done

实例代码如下:

#! /bin/bash for var in 0 1 2 3 4 5 6 7 8 9 do echo $var done

打印结果如下:

[root@VM_0_11_centos days01]# ./shellfor.sh 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9

第二个实例代码:获取/home文件夹下的所有的以 .bash开头的文件:

#! /bin/bash for file in $home/.bash* do echo $file done

结果如下:

/root/.bash_history /root/.bash_logout /root/.bash_profile /root/.bashrc

    进入今天的正题,参数传递:

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

代码示例如下:($0表示可执行文件的名称)

#! /bin/bash echo "可执行脚本的文件名为:$0" echo "向shell脚本传递的第1个参数为:$1" echo "向shell脚本传递的第2个参数为:$2" echo "向shell脚本传递的第3个参数为:$3" echo "向shell脚本传递的第4个参数为:$4"

运行及其结果如下:

[root@VM_0_11_centos days01]# ./params.sh 1 2 3 4 可执行脚本的文件名为:./params.sh 向shell脚本传递的第1个参数为:1 向shell脚本传递的第2个参数为:2 向shell脚本传递的第3个参数为:3 向shell脚本传递的第4个参数为:4

一些重要的参数介绍

$#传递到脚本参数的个数$*获取所有的参数,以一个单字符串的形式显示$$脚本运行的当前进程号ID$!后台运行的最后一个进程的ID$$与$*相同,但是使用时加引号,并在引号中返回每个参数。$-显示Shell使用的当前选项,与set命令功能相同。$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

实例程序:

#! /bin/bash echo "可执行脚本的文件名为:$0" echo "向脚本传递参数的个数为:$#" echo "向shell脚本传递的参数为:$*" echo "脚本当前运行的进程的ID为:$$" echo "后台程序运行的最后一个进程的id为:$!" echo "与$*相同,但是使用时加引号,并在引号中返回每个参数:$@" echo "程序正常:$?"

 

运行结果如下:

可执行脚本的文件名为:./params2.sh 向脚本传递参数的个数为:5 向shell脚本传递的参数为:1 2 3 4 5 脚本当前运行的进程的ID为:17967 后台程序运行的最后一个进程的id为: 与1 2 3 4 5相同,但是使用时加引号,并在引号中返回每个参数:1 2 3 4 5 程序正常:0

 

转载请注明原文地址: https://www.6miu.com/read-4930642.html

最新回复(0)