向bash shell脚本传参

例子:

powershell 复制代码
~ script % touch parameter.sh
~ script % chmod 755 parameter.sh
~ % vim parameter.sh

parameter.sh:

powershell 复制代码
#!/usr/bin/env bash

echo the name of current script is $0

echo the first parameter is $1

echo the second parameter is $2

echo all parameters: $@

exit 0 

执行:

powershell 复制代码
script % ./parameter.sh a b
the name of current script is ./parameter.sh
the first parameter is a
the second parameter is b
all parameters: a b
  • $0 带全路径的脚本名称
  • $1 第1个参数
  • $2 第2个参数
  • $3 第3个参数
    ...
  • ${10} 第10个参数
    ...
  • ${255} 第255个参数
    最多可以有255个参数
  • @: 获取所有参数,除了脚本名称,即@等于1\~255的参数的集合

我们可以通过查询$?了解脚本程序退出的状态。因为上面的脚本加了exit 0表示退出时的状态是0,一般来说,当程序出现异常导致退出时,状态值是个非0的整数。 如果我们加上这一句exit 10,执行完脚本后,再查询一个退出状态,就会得到10,查询的方式:

powershell 复制代码
~ script % echo $?
10
相关推荐
Pota-to成长日记3 分钟前
2025/10/14 redis断联 没有IPv4地址 (自用)
linux·运维·服务器
樱木...6 分钟前
Linux 查询目录下文件大小引发的内存溢出问题
linux·运维
.小墨迹7 分钟前
linux删除通过源码安装的库
linux·运维·chrome
~黄夫人~16 分钟前
Ubuntu系统快速上手命令(详细)
linux·运维·笔记·ubuntu·postgresql
发光的沙子23 分钟前
FPGA----petalinux的Ubuntu文件系统移植
linux·运维·ubuntu
lili-felicity28 分钟前
解决VMware Workstation Pro 17中Ubuntu 24.04无法复制粘贴
linux·运维·ubuntu
Lzc77429 分钟前
Linux网络的应用层自定义协议
linux·应用层自定义协议与序列化
_extraordinary_1 小时前
Java Spring配置
java·开发语言·spring
虚伪的空想家1 小时前
HUAWEI A800I A2 aarch64架构服务器鲲鹏920开启虚拟化功能
linux·运维·服务器·显卡·npu·huawei·鲲鹏920
进击的大海贼1 小时前
QT-C++ 自定义加工统计通用模块
开发语言·c++·qt