arrays - 如何将普通 args 和数组都传递给 bash 脚本参数?
问题描述
我正在尝试拥有一个包含一些参数的 bash 脚本。其中一个需要是一个数组,因此 args 的数量在该数组中不固定。
所以我想按如下方式运行我的 bash 脚本:
test.sh arg1 arg2 arr1
在 test.sh 中,我正在做类似的事情
arg1=$1
arg2=$2
arr=$3 # arr1
for var in len(arr)
do
# do something
done
解决方案
#!/bin/bash
arg1=$1
arg2=$2
shift 2
for argn do
# do something with "$argn"
done
也就是说,首先接收两个固定参数,然后使用 将它们从位置参数列表中移出shift 2
。位置参数列表中剩下的是其他参数的可变长度列表。
最后一个循环可以写成
for argn in "$@"; do
# do something with "$argn"
done
...但请确保您使用"$@"
而不是仅仅$@
因为它会拆分空格上的各个参数并调用文件名通配符。
推荐阅读
- php - 如何在php中对文件上方的目录进行排序
- java - 如何在android studio上按下按钮时进行简单的文本交换
- ios - How to make a label to be a circle in Swift4?
- tcl - 测试 TCL 中是否存在矩阵对象
- visual-studio - Is there an "easy" way to migrate installed extensions from Visual Studio 2017 to Visual Studio 2019 when installed side-by-side?
- mysql - mysql'慢查询日志'返回大量检查的行,但解释似乎没问题
- chart.js - Chartjs 工具提示超出页面
- xgboost - 如何在 xgboost.XGBClassifier 中同时使用自定义 eval_metric 和内置指标
- sql-server - SQL Server 和 Oracle 表之间的联合视图(查询)
- html - 没有嵌套部分的 CSS 自动编号