【发布时间】:2011-01-28 06:09:54
【问题描述】:
我试图允许将其中包含空格的字符串计为整个字符串,而不是被解析。这就是我希望发生的事情:
$ ksh program.ksh "what up"
File 'what up' not found.
这就是我得到的:
$ ksh program.ksh "what up"
File 'what' not found.
File 'up' not found.
这是我尝试过的代码:
wflag=false
cflag=false
while getopts "cw" opt; do
case "$opt" in
c)
cflag=true
;;
w)
wflag=true
;;
/?)
;;
esac
done
问题在于 1) 我尝试上面的 ksh program.ksh "what up" 之类的东西,以及 2) 当我尝试 ksh program.ksh "-w -c" 之类的东西时。第二个最令人困惑,因为当我打印出wflag 和cflag 时,它们都是正确的。 "-w -c" 不应该在这里被视为字符串吗?似乎内核(是内核在这里工作吗?)正在解析这个,尽管这正是我不想要的;我希望它被视为带有空格的字符串。我已经阅读了WordSplitting 和((关于论点的文章,但我不让我发布它)),认为我理解。显然我一定是遗漏了什么,或者根本没有真正理解它:P
我的直觉告诉我getopts 发生了一些事情,它会自动消除任何空白。我尝试过$(opt) 而不是"$opt",以及大括号和/或单引号(我很确定单引号不会起作用)。唉,没有雪茄。
任何帮助将不胜感激,并感谢您阅读这堵文字墙。
【问题讨论】: