千家信息网

shell传参

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,大家都知道普通的bash命令后边可以跟任意的参数,那我们自己编写的脚本是否也支持传递参数呢?答案当然是肯定的执行"vim test.sh"创建一个新的shell脚本。脚本test.sh的内容如下:#!
千家信息网最后更新 2025年12月04日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安全错误 数据库的锁怎样保障安全 数字化转型与数据库的关系 南京天域互联网科技中心街道 北京能通天下网络技术欠薪 ios安卓软件开发工具 网络安全和信息化是一体 洛正互联网科技上海有限公司 宝塔软件如何搭建服务器 公益网络安全宣传证书收费吗 数据库的浏览途径 广安经开区网络安全宣传周活动 统计局省市区数据库 杨浦区网络营销软件开发报价方案 软件开发要办理什么 数据库管理系统有哪种 软件开发转行可以干什么 内乡网络安全宣传 数据库引擎组件作用是什么 指望社会经济数据库 魔兽世界不同服务器能一起刷副本 电脑服务器密码是什么 条形码技术案例数据库 两年网络安全个人评价 销售网站数据库设计 杨浦区网络营销软件开发报价方案 xeon e5服务器 版纳互联网科技怎么选 直播服务器和主机连接 网络安全知识培训教育 网络技术对人隐私的影响 页面提交腾讯云服务器后没有图片
0