linux - for循环中的bash脚本数组变量
问题描述
我正在尝试编写获取 3 个路径参数的 bash 脚本。对于 ex /tmp/1 /tmp/2 /tmpnew 我想迭代除最后一个参数之外的参数,并且每次将文件复制到最后一个参数的路径。
我在 for 中遇到了 echo '${files[$(($len))]}' 的问题。我不能像那样拉最后一个论点。
files=( "$@" )
len=${#files[@]}
echo $len
for (( i=0; i<$(( $len -1 )); i++ ))
do
echo ${files[$(($len))]}
echo ${files[$i]}
done
解决方案
最后一个元素是${files[len-1]}
,或者简单地说${files[-1]}
。
同样,您可以使用 just ${files[i]}
。如果数组不是关联的,bash 将索引解释为算术表达式。
#!/bin/bash
files=("$@")
len=${#files[@]}
echo $len
for (( i=0; i<len-1; i++ )) ; do
echo "${files[-1]}"
echo "${files[i]}"
done
推荐阅读
- c# - 返回另一个泛型类型的泛型类型
- lua - 如何使用来自 Roblox Games API 的信息?
- ios - XCode 应用程序创建错误:STATE_ERROR.APP_CREATE.PLATFORM_NOT_ALLOWED_DUE_TO_CONTRACT_STATE
- odoo - Odoo 支付流程
- python - 如何在 django restframework 权限中获取参数 PK?
- node.js - 在 nodejs 应用程序中访问 operationId 需要帮助和指导
- design-patterns - 使用 Godot 的基于工具的应用程序的架构是什么
- flutter - 为什么不需要 BuildContext 的状态管理方法不好的示例
- c# - 如何修复:尝试通过 ClickOnce 或 Visual Studio 安装程序发布应用程序时无法加载文件或程序集“CefSharp.Core.Runtime.dll”?
- r - Rstudio潜在的内存泄漏/后台活动?