当前位置:首页 » 编程软件 » shell脚本带参数

shell脚本带参数

发布时间: 2022-04-14 15:30:13

A. 简述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

B. shell脚本中怎么利用参数'

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

C. 如何给shell脚本传参

这里有一个简单的参数调用的代码,请参考
functiontest
{
#这里通过$1,$2,来使用传递的参数
echo'Youinputis:'$1
}

echo'=======Paramtest========'
echo'Pleaseinputparam:'
readparam
#如果有多个参数,在后面加即可。
test${param}

下面是结果:

=======Param test========

Please input param:

aaaaaaa

You input is: aaaaaaa

D. 怎么写一个shell脚本传入参数

echo第1个参数为$1
echo第9个参数为$9
echo第11个参数为${11}
forpin"$@";do
echo$p
done
forp;do
echo$p
done

E. 学习写一个带参数执行的shell脚本,求大神指点

[root@localhost ~]# vim create.sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
create database $1;
EOF
[root@localhost ~]# sh create.sh b1

[root@localhost ~]# mysql -uroot -p123456 -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| b1 |

F. 如何给shell脚本传参数

from:linux命令行与shell脚本编程大全.第3版

向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向命令行添加数据。
$ ./addem 10 30
本例向脚本addem传递了两个命令行参数( 10和30)。脚本会通过特殊的变量来处理命令行参数。

下面是在shell脚本中使用单个命令行参数的简单例子。

$cattest1.sh
#!/bin/bash
#usingonecommandlineparameter
#
factorial=1
for((number=1;number<=$1;number++))
do
factorial=$[$factorial*$number]
done
echoThefactorialof$1is$factorial
$
$./test1.sh5
Thefactorialof5is120
$


G. 往shell脚本中传入参数

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

H. 如何给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

热点内容
江西电商存储设备怎么样 发布:2025-03-16 07:32:10 浏览:303
中信电话密码是多少 发布:2025-03-16 07:32:08 浏览:366
怎么样学好编程 发布:2025-03-16 07:31:24 浏览:569
python输出素数 发布:2025-03-16 07:31:21 浏览:418
显卡加速编译 发布:2025-03-16 07:28:53 浏览:683
javadebug 发布:2025-03-16 07:16:21 浏览:284
怎么搭建linux服务器ftp 发布:2025-03-16 07:07:38 浏览:989
芯片存储原理 发布:2025-03-16 06:58:21 浏览:284
c语言中的整型 发布:2025-03-16 06:40:48 浏览:184
分部数据库服务器的IP地址有效 发布:2025-03-16 06:33:40 浏览:193