bash - 将 bash 文件的多余参数导出到另一个文本文件
问题描述
我正在尝试编写一个通常需要 3 个参数的 bash 文件。当给出的参数超过 3 个时,会调用一个额外的条件。此条件应将额外的参数导出到名为excess 的文本文件中。这是我到目前为止的代码:
if [ $# -gt 3]; then
for ((i = 4; i <= $#; i++)); do
echo "$i" >> "excess.txt"
done
fi
循环不是导出实际参数,而是将数字 4,5,6... 导出到文本文件。
我不太清楚为什么会发生这种情况,因为我在 echo 语句中的“i”之前使用了美元符号。
解决方案
您应该使用间接扩展${!}
:
for ((i = 4; i <= $#; i++)); do
echo "${!i}" >> "excess.txt"
done
另外,你可以做
shift 3; echo "$@" >> execss.txt
推荐阅读
- powershell - 复制具有特定父目录的所有文件,同时维护目录树
- mysql - MySQL LIKE 与 json_extract
- excel - vba 数据类型问题 - 如何正确插入数字(带逗号)?
- java - 如何修复错误“最后一个成功发送到服务器的数据包是 0 毫秒前。驱动程序没有收到来自服务器的任何数据包”
- node.js - Node Js 运行构建错误无法解析组件
- python - Chua的电路使用python和绘图
- swift - 如何在 Swift 中更改 SF Symbols 图标的颜色?
- javascript - ipc Renderer 说它不是一个功能,即使我认为我使用正确
- html - CSS 中的一些响应式问题
- django - 使用 Django Rest Framework 实现 MVC 模式