shell编程 - 命令行参数
1. 读取参数
$1 获取第1个参数
$2 获取第2个参数
${10} 获取第10个参数
./test.sh 2 3
# test.sh 脚本内容
var1=$1 # 2
var2=$2 # 3
var3=$[ $var1 * $var2 ]
echo $var3 # 6
获取超过第9个参数时要用花括号括起来,${10}, ${11}
2. 读取脚本名称
$0 获取当前文件的脚本名称包括路径
./test.sh
filePath=$0
echo $filePath # ./test.sh
使用basename命令返回不包含脚本的文件名
./test.sh
filename=$(basename $0)
echo $filename # test.sh
3. 读取参数个数
$# 读取参数的个数
./test.sh 2 3
count=$#
echo $count # 2
4. 读取参数列表的最后一个参数
${!#} 读取最后一个参数
./test.sh 2 3
echo ${!#}
5. 遍历参数列表
$@ 或者 $* 可以获取所有的参数
./test.sh 2 3 4
for val in $@
do
echo $val
done
6. 检测参数
./test.sh 2 3
if [ -n "$2" ]
then
echo "$2"
fi
7. 移动参数
shift 默认每次将参数向左移动一个位置,第2位变为第1位
./test.sh 2 3 4
while [ -n "$1" ]
do
echo "$1"
shift
done
shift 2 每次将参数向左移动2个位置
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战