首页 > 系统相关 >shell参数传递

shell参数传递

时间:2023-01-04 18:23:33浏览次数:64  
标签:脚本 传递 shell echo 参数传递 sh 参数 test

目录

shell参数传递

1、示例

我们在执行脚本的时候,可以传入参数,参数如何使用呢?

使用$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

2、特殊处理:

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

3、运用

#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

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

echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";

执行脚本,输出结果如下所示:

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

4、$* 与 $@ 区别:

  • 相同点:都是引用所有参数。
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

echo "-- \$* 演示 ---"
for i in "$*"; do
    echo $i
done

echo "-- \$@ 演示 ---"
for i in "$@"; do
    echo $i
done

执行脚本,输出结果如下所示:

$ chmod +x test.sh 
$ ./test.sh 1 2 3
-- $* 演示 ---
1 2 3
-- $@ 演示 ---
1
2
3

标签:脚本,传递,shell,echo,参数传递,sh,参数,test
From: https://www.cnblogs.com/lgxdev/p/17025681.html

相关文章

  • shell变量
    目录shell变量1、变量的命名规则1.1、正确的命名:1.2、错误的命名1.3、隐式命名1.4、使用变量1.5、只读变量1.6、删除变量1.7、变量类型2、字符串2.1、单引号变量2.2、双引......
  • shell的介绍以及使用
    目录shell的介绍以及使用1、shell脚本2、shell环境3、第一个shell脚本4、运行shell脚本4.1、作为可执行程序4.2、作为解释器参数shell的介绍以及使用Shell是一个用C语......
  • shell数组
    shell数组shell数组中只有一维数组,没有二维数组。下标从0开始,不需要初始化数组大小。1、语法array_name=(value1value2...valuen)简单的创建:#!/bin/bashmy_arra......
  • 通过xshell在linux上安装nginx1.12.0
    0)环境安装Nginx是C语言开发,建议在Linux上运行,当然,也可以安装Windows版本,本篇则使用CentOS7作为安装环境。 0.1gcc安装安装nginx需要先将官网下载的源码进......
  • Linux学习4之shell脚本中的小数运算
    1.awkhadoop@Mcnode1:~/cloud/adam/xubo/data/test20160310/test$catdemical.sh#!/bin/bashecho`awk-vx=2.45-vy=3.123'BEGIN{printf"%.2f\n",x*y}'`s=1.5echo$s......
  • Linux学习5之shell显示当前目录下所有的文件和文件夹
    hadoop@Mcnode4:~/cloud/adam/xubo/data/test20160310/bwa3sh/test142234$catshowFileAndDirectory.sh#!/bin/bashdir=$(ls-l./|awk'!/^d/{print$NF}')foriin$d......
  • scrapy shell && ipython
    scrapyshell:Scrapy终端,是一个交互终端,供您在未启动spider的情况下尝试及调试您的爬取代码。其本意是用来测试提取数据的代码,不过您可以将其作为正常的Python终端,在上面......
  • 【Linux】Ubuntu18.04 设置开机自启动shell脚本
    需求:我有一个功能,需要打开 termial终端 手敲命令启动,每次开机都要手动执行一次命令,很不方便,能否设置为开机自动启动?解决方案:1.进入/lib/systemd/system能看到有很多启......
  • linux命令shell执行
    新建一个文件test.sh,扩展名为sh(sh代表shell),扩展名并不影响脚本执行,见名知意就好,如果你用php写shell脚本,扩展名就用php好了。输入一些代码,第一行一般是这样:实例#!/bi......
  • Shell 变量
    定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:your_name="​​http://runoob.com​​​"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,......