如何清除postional参数数组?

时间:2016-11-20 15:33:35

标签: arrays bash shell positional-parameter

我正在使用whiptail命令并使用位置参数添加“menu”项。按预期工作。

不幸的是,当我完成一个菜单项并选择另一个菜单项时,位置参数是累积的AKA以前的菜单选择也会传递给处理功能并显示/启用“新”选项。

我试过了

unsel“$ @”

它不起作用

这是菜单项处理代码:

  

while [[$#-ge 2]];做          #buidl arraqy

此处的代码错误 - a()数组未在每次新传递时初始化 这个功能

   a+=("$2" "$3" "$onoff")
   #echo  "${a[@]}" 
   onoff=off
   shift 2 done
     

echo“$ {a [@]}”

     

whiptail - 标题“$ 1 $ LINENO”   --checklist“选择执行命令25 80 15”    - 分离输出$ WT_HEIGHT $ WT_WIDTH $ WT_MENU_HEIGHT \“$ {a [@]}”\ 2>结果

以下是设置位置参数/菜单项的代码的一部分:

  

案例$ ADVSEL in            1 \ *)

     

shift $

    set -- "DEBUG   component  SYSTEM $LINENO" \
    "uname --help"  "TEST uname  " \
    "uname --all"     "TEST uname -all" \
    "systemctl -h" "? help $LINENO TEST 4 " \
    "sudo reboot" "$LINENO  " \
    "sudo shutdown" "$LINENO  " \
    "dmesg " "$LINENO " \
    "lsmod" "Linux running modules $LINENO" \
    "ls ras*" "list all rasbi_ files  " 
    ;;

我知道我可以使用单通道“unsel”命令重置阵列,但我不知道要重置的正确语法 位置数组。

2 个答案:

答案 0 :(得分:-1)

如果它不止一行,您可以将其复制并保存在文件中。之后,您可以将其作为普通脚本运行。有关详细信息,请参阅本教程。 How to run .sh files

答案 1 :(得分:-2)

已解决 我没有初始化位置参数数组-在原始文章

中进行了编辑