我的对话框中的输入框有问题。它覆盖了按下回车键时输入的文本。当按下 Enter 键时,无论光标焦点在哪里,都会发生这种情况。
这是我使用的代码是bash
OUTPUT="INPUT.txt"
>$OUTPUT
dialog --stdout --title "Client Name" \
--backtitle "Setup" \
--inputbox "Enter The Client Name" 0 0 2>$OUTPUT
CLIENTNAME=$(<$OUTPUT)
rm $OUTPUT
您正在使用
--stdout
选项,但重定向 STDERR 而不是 STDOUT。
改变
--inputbox "Enter The Client Name" 0 0 2>$OUTPUT
至
--inputbox "Enter The Client Name" 0 0 >$OUTPUT
使用
--stdout
时可以解决这个问题。
在网络搜索时找到了这个条目,只是想补充一点,使用
dialog
时不需要临时文件和重定向,您可以使用选项--output-fd 1
直接将文本框输入存储到变量中:
#!/bin/bash
Client_Name="$(
dialog \
--output-fd "1" \
--title "Client Name" \
--backtitle "Setup" \
--inputbox "Enter The Client Name" "0" "0"
)"
echo "Hello, $Client_Name."