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个位置

posted @   箫笛  阅读(223)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示