通过对话框表单填充数组中的空字符串

问题描述 投票:0回答:1

我需要制作一个小搜索表单来查找数据库中的一些标题。 我使用 bash 中的对话框形式。 问题是当表单字段未填写时我无法获取空字符串。

function searchEngine() { 

    exec 3>&1
        "ENGINE=($(dialog --clear --ok-label "Submit" \
          --title "Search Engine" \
          --form "Search" \
        15 50 0 \
        "1 :" 1 1   "${ENGINE[0]} " 1 20 30 0 \
        "2 :"    2 1    "${ENGINE[1]} " 2 20 30 0 \
        "3 :"    3 1    "${ENGINE[2]} " 3 20 30 0 \
        "4 :"     4 1   "${ENGINE[3]} " 4 30 20 0 \
    2>&1 1>&3))"
    
    exec 3>&-

}

echo "${ENGINE[*]}"

如果3和2不填,ENGINE[0]=smthg ENGINE[1]=smthg ${#ENGINE[@]}=2 我需要空字符串来表示未填充的字段。 预先感谢

arrays bash forms dialog ifs
1个回答
0
投票

将其添加到函数的底部:

for (( i=0; i<=3; i++ )); do
    ENGINE[i]="${ENGINE[i]:-''}"
done

function searchEngine() {
更改为
searchEngine() {
,因为添加多余的
function
关键字只会使其不可移植到其他 shell。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.