我需要制作一个小搜索表单来查找数据库中的一些标题。 我使用 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 我需要空字符串来表示未填充的字段。 预先感谢
将其添加到函数的底部:
for (( i=0; i<=3; i++ )); do
ENGINE[i]="${ENGINE[i]:-''}"
done
将
function searchEngine() {
更改为 searchEngine() {
,因为添加多余的 function
关键字只会使其不可移植到其他 shell。