千家信息网

shell传参

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,大家都知道普通的bash命令后边可以跟任意的参数,那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的执行"vim test.sh"创建一个新的shell脚本。脚本test.sh的内容如下:#!
千家信息网最后更新 2026年11月02日shell传参

大家都知道普通的bash命令后边可以跟任意的参数,那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的

执行"vim test.sh"创建一个新的shell脚本。脚本test.sh的内容如下:

#!/bin/sh

name=$1

echo "the ${name} are great man!"

给新创建的test.sh的脚本赋可执行权限,命令为"chmod +x test.sh"

执行'./test.sh "xiao wang" '命令,可以看到自己编写脚本的结果"the xiao wang are great man!"

"name=$1"中$1为系统提供的位置参数,$0代表程序的名称(./test.sh),[$1 $2...]从1开始为传递的参数。linux系统除了提供位置参数还提供内置参数,所有内置参数如下: 

$0 ----当前脚本文件名

$n ----传递给脚本或函数的参数,n是一个数字,表示第几个参数,$1表示第一个参数,$2表示第二个参数 ...

$# ----传递给脚本或函数的参数个数

$* ----传递给脚本或函数的所有参数,当它被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 ... $n"的形式输出所有参数

$@ ----传递给脚本或函数的所有参数,当它被双引号(" ")包含时,与$*稍有不同,"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数

$* 和$@不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数

下面写个小程序实践一下$* 和$@

$? ----上一个命令的退出状态,或函数的返回值,如果正常退出则返回0,反之为非0值

$$ ----当前shell进程pid,对于shell脚本,就是这些脚本所在的进程ID

$! ----上一个命令的pid

新建test.sh chmod +x test.sh 执行./test.sh "a" "b" "c" "d",观察打印结果
#!/bin/bash
echo "\$*=" $*
echo "\$@=" $@

echo "print each param from \$*"
for var in $*
do
echo $var
done

echo "print each param from \$@"
for var in $@
do
echo $var
done

echo "print each param from \"\$*\""
for var in "$*"
do
echo $var
done

echo "print each param from \"\$@\""
for var in "$@"
do
echo $var

done

打印结果:
$*= a b c d
$@= a b c d
print each param from $*
a
b
c
d
print each param from $@
a
b
c
d
print each param from "$*"
a b c d
print each param from "$@"
a
b
c
d
参数 脚本 函数 命令 引号 形式 结果 输出 位置 程序 系统 进程 不同 普通 个数 代表 内容 名称 就是 所在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 深圳九邦互联网科技有限公司 互联网科技论文 互联网高科技企业 大白互联网科技 衡水科技产业互联网平台 广州优美互联网科技 福建科技产业互联网发展 新兴科技互联网创新大赛颁奖典礼 注册互联网科技公司经营范围大全 中和天地互联网科技有限公司 美国互联网科技公司 云鲸互联网络科技有限公司 广西科技产业互联网是什么 互联网科技收购价值 青岛易易互联网科技 科技互联网专业工作会议发言稿 杭州科技互联网公司有哪些 伍佰万互联网科技是干嘛的 小牛互联网科技有限公司地址 互联网科技公司简介 厦门中拓互联网络科技有限公司 金融科技还是互联网 北京互联网科技 上海卓越科技 互联网 互联网科技英文翻译 宁波青枫互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 互联网界的黑科技 北京品多多互联网科技有限公司
0