【发布时间】:2013-04-25 10:25:19
【问题描述】:
我尝试在 bash 脚本中创建一个对话框清单。我必须从文件的行中生成选项。我认为问题在于我的条目包含空格,因此许多人考虑了一个条目。
对话框给我这个错误:
Error: Expected 3 arguments, found only 1. Use --help to list options.
这是我的代码:
while read entry; do
option+=(0 "$entry" "off")
echo "$option"
done < "$tempfilelist"
dialog --backtitle "Myscript" \
--title "Mytitle" \
--checklist "Mytext" 10 70 4 "${option[@]}"
我什至尝试在循环中加上引号,如下所示:
"'$entry'"
但没有变化。
这是我的文件(tempfilelist):
Wed Apr 24 14:17:20 2013 20130423.maya.txt
Wed Apr 24 14:17:41 2013 maya.txt
如何让这个脚本工作?
谢谢!
【问题讨论】:
-
我做 ./my_script.sh。我不知道你为什么要争论。我不需要它们。它们来自文件(tempfilelist)
-
上面发布的代码对我有用,
/bin/sh链接到bash3.2.48。 -
@chepner : 你是怎么做到的?你的对话版本是哪个?
-
我有对话框 1.1-20120215。一个想法:你确定
option正在被填充吗?如果为空,"${options[@]}"将扩展为单个空字符串。 -
是的,选项不为空。我认为问题在于我的字符串中的空格。 args[0]="0" args[1]="Wed" args[2]="Apr" args[3]="24" ...怎么处理?
标签: bash parameters dialog escaping