bash - 如何在 bash 中使用变量指定命令行参数

标签 bash command-line-arguments

我希望我的 bash 脚本采用 2 或 3 个参数,最后一个参数始终是要打开的输入文件。因此参数的索引应该取决于提供的参数数量。我知道这可以通过 if 语句来实现,例如:

if [ $# -eq 3 ]; then
  INFILE=$3
elif [ $# -eq 2 ]; then
  INFILE=$2
fi

..打开文件读取...

但是我希望这可以通过一个衬里来完成,如下所示:

INFILE=$($#)

但它不起作用。与 INFILE=$"$#"相同。是否可以直接用“$#”指定参数索引

最佳答案

尝试使用 INFILE="${@: -1}" 获取最后一个参数。

关于bash - 如何在 bash 中使用变量指定命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25371175/

相关文章:

macos - CocoaDialog 文本框显示第一行

php - 将变量从 php 传递到 bash

获取命令行选项和参数的 PHP 库

svn - 用于迭代定义的文件名集并执行命令的 Bash 脚本

bash - 启动 bash 时如何获取附加文件

linux - 如何转义变量以用于 sed?

powershell - Powershell 中的命令行参数

windows - 我是否需要在程序集中复制命令行参数

bash - 当 bash globbing 太多时列出匹配模式的文件

c - 为什么我不能用动态参数设置 printf 的输出格式?