Linux脚本传递参数

Linux脚本传递参数一 Shell 特殊参数解释首先来看几个特殊变量 0 bin bashecho 0 当前脚本的文件名 间接运行时还包括绝对路径 echo n 传递给脚本或函数的参数 n 是一个数字 表示第几个参数 例如 第一个参数是 1 echo 传递给脚本或函数的参数个数 echo 传递给脚本或函数的所有参数 echo 传递给脚本或函数的所有参数 被双引号 包含时

#!/bin/bash echo $0 # 当前脚本的文件名(间接运行时还包括绝对路径)。 echo $n # 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1 。 echo $# # 传递给脚本或函数的参数个数。 echo $* # 传递给脚本或函数的所有参数。 echo $@ # 传递给脚本或函数的所有参数。被双引号 (" ") 包含时,与 $* 不同,下面将会讲到。 echo $? # 上个命令的退出状态,或函数的返回值。 echo $$ # 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。 echo $_ # 上一个命令的最后一个参数 echo $! # 后台运行的最后一个进程的 ID 号 

执行

$ ./test.sh test test1 test2 test3 test4 ./test.sh # $0 # $n 5 # $# test test1 test2 test3 test4 # $* test test1 test2 test3 test4 # $@ 0 # $? 12305 # $$ 12305 # $_ # $! 

$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号 (“”) 包含时,都以”$1″“ 2 ” … ” 2″ … ” 2n” 的形式输出所有参数。

但是当它们被双引号 (“”) 包含时,”$*“会将所有的参数作为一个整体,以”$1 $2 … n ” 的 形 式 输 出 所 有 参 数 ; ” n”的形式输出所有参数;” n@“会将各个参数分开,以”$1″“ 2 ” … ” 2″ … ” 2n” 的形式输出所有参数。

示例2:新建一个test.sh的文件

#!/bin/bash echo "脚本$0" echo "第一个参数$1" echo "第二个参数$2" 

执行结果如下:

$ ./test.sh 1 2 #shell中将会输出: 脚本./test.sh 第一个参数1 第二个参数2 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221679.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午5:32
下一篇 2026年3月17日 下午5:32


相关推荐

  • 计算机专业常用英语

    计算机专业常用英语计算机专业常用英语 1 nbsp nbsp file nbsp nbsp nbsp n 文件 v 保存文件 2 nbsp nbsp command nbsp nbsp nbsp n 命令 指令 3 nbsp nbsp use nbsp nbsp nbsp v 使用 用途 4 nbsp nbsp program nbsp nbsp nbsp n 程序 5 nbsp nbsp line nbsp nbsp nbsp n 数据 程序 行 线路 6 nbsp nbsp if nbsp nbsp nbsp conj 如果 7 nbsp nbsp display nbsp nbsp nbsp vt 显示 显示器

    2026年3月26日
    2
  • pycharm安装tensorflow2.0 过程

    pycharm安装tensorflow2.0 过程pycharm安装tf2.0步骤1.安装python3.7.9官网下载,记住安装python.exe的路径官网地址2.配置环境,设置成上一步安装好的.exe文件3.安装tf相关包,点击添加pandsnumpymatplotlibscikit-learntensorflow2.04.测试安装成功,输入代码importtensorflowastfsess=tf.Session()a=tf.constant(1)b=tf.constant(2)p

    2025年6月26日
    4
  • java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」

    java volatile关键字的作用_Java并发编程彻底搞懂volatile关键字「建议收藏」背景Java线程控制中常用的两个关键字:synchronized、volatile因上篇文章《程序员眼中的Synchronized同步锁》对synchronized关键字进行来详解。本篇文章主要对volatile关键字进行解剖。volatile关键字特性内存可见性(MemoryVisibility),所有线程都能看到共享内存的最新状态;有序性;不具备原子性(最致命缺点)。volatile解决什么…

    2022年5月6日
    47
  • Maven中央仓库地址大全,Maven中央仓库配置示例

    Maven中央仓库地址大全,Maven中央仓库配置示例nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp Maven 中央仓库地址大全 在上一篇文章中完成了 nbsp Maven 镜像地址大全 后来又花了时间又去收集并整理了关于 maven 远程仓库地址 并整理于此 关于 Maven 远程仓库地址的配置方式有两种 第一种 直接在项目的 pom xml 文件中进行修改 不推荐 尤其是在多人协助的开发过程中非常的费事费

    2026年3月16日
    2
  • mysql 0xc0000005_duilib菜单开发遇见“0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突”…

    mysql 0xc0000005_duilib菜单开发遇见“0xC0000005: 读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突”…我的程序是这样一个逻辑。首先创建用户列表,点击列表项弹出菜单,点击菜单上“设备选项”,弹出设备列表,上面显示这个用户拥有的设备。菜单的创建参考了这为博主的教程:http://www.cnblogs.com/Alberl/category/520438.html如图点击列表项,弹出菜单中点击“设备”,运行新的窗口“设备列表”。接下来问题出现了,上面操作重复两遍,会在第二次关闭设备列表的时候发生…

    2022年10月3日
    5
  • 利用serv-u搭建ftp服务器实验报告_服务器系统怎么进U启动

    利用serv-u搭建ftp服务器实验报告_服务器系统怎么进U启动以前在学校的时候,学校的整个宿舍楼都是在一个局域网中,经常有人用个人电脑搭个网站或者FTP啊什么的,主要是进行一些影视资源的传播活动。不乏有些资源充沛的有志青年利用业余时间翻译某岛国影视资源,利用局域网FTP上传到某大大的个人电脑上。资源广为分享,其翻译作品之影响力在我们热血青年心中丝毫不亚于书记的训话。我们记住了大大的服务器帐号,也记住了大大被通报批评后黯然的神情,却忽视了在背后默…

    2025年9月8日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号