【问题标题】:User defined file types to replace defaults用户定义的文件类型来替换默认值
【发布时间】:2021-12-24 01:05:43
【问题描述】:

我正在为文件类型设置默认值,但是当用户指定他自己的文件类型时,我想忽略默认值,而不是追加。我能做些什么来解决这个问题?这是 bash 脚本的一部分。

local incl=( ".rc" ".el" ".c" ".f")
while (( $# > 0 )); do
  opt="$1"
  case $opt in
   ("--FS") fs="$2" ; shift ; shift ;;
   ("--incl") incl+=("$2") ; shift ; shift ;;
   (*) break ;;
  esac
done

【问题讨论】:

    标签: bash default options


    【解决方案1】:
    local incl
    
    while (( $# > 0 )); do
      case $1 in
       (--FS) fs=$2;;
       (--incl) incl+=("$2");;
       (*) break ;;
       shift 2
      esac
    done
    
    ((${#incl[@]} == 0 )) &&
    incl=(.rc .el .c .f)
    

    如果您必须添加任何单字选项,请将shift 2 更改为shift,并为双字选项的命令添加额外的移位。

    【讨论】:

    • 如何从数组中删除一个条目?
    • @Dilna 按值还是按索引选择元素? unset arr[N] 删除索引和值(不更改其他索引)。要按值选择,您需要遍历数组以正确删除它。为什么要删除?可能有更好的方法。
    猜你喜欢
    • 2018-11-01
    • 2021-03-04
    • 1970-01-01
    • 2011-06-10
    • 2010-12-27
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多