如何从命令输出生成交互式“对话框”核对表?

时间:2016-06-04 15:22:05

标签: linux bash shell dialog

我想在*.swp中显示所有~/dir个文件的列表(自动检查)。如何在 shell脚本中进行以下工作?

options=$(find ~/dir -name '*.swp' | awk '{print v++,$1, "on"}')
cmd=(dialog --separate-output \
            --ok-label "Delete" \
            --checklist `"Select options:" 22 76 16)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)

1 个答案:

答案 0 :(得分:2)

你很亲密。这似乎是你想要做的:

#!/bin/bash
options=$(find ~/dir -name '*.swp' | awk '{print $1, "on"}')
cmd=(dialog --stdout --no-items \
        --separate-output \
        --ok-label "Delete" \
        --checklist "Select options:" 22 76 16)
choices=$("${cmd[@]}" ${options})

需要进行这些更改:

  • 使用--stdout选项
  • 使用--checklist
  • 摆脱一线上的迷失背景
  • 在每条记录的开头省略“tag”编号,并使用--no-items

@agc指出[@]中的${options[@]}是不必要的(虽然它碰巧有效)。