shell入门2

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GoSaint/article/details/83316404

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 脚本时,向脚本传递参数,脚本内获取参数的格式为:$nn 代表一个数字,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

猜你喜欢

转载自blog.csdn.net/GoSaint/article/details/83316404
今日推荐