我正在尝试在 zsh 中使用下一个代码:
select var in $list; do
if [ x"$var" != x"" ]; then
echo $var
return
fi
done
在 bash 中会导致如下结果:
- 第一的
- 第二
- 第三
但是在zsh中我得到了这个:
- 第一 3. 第三
- 第二
我怎样才能让它在新行上打印每个变体?
从 Zsh 手册:
COLUMNS <S>
The number of columns for this terminal session.
Used for printing select lists and for the line editor.
这在这里有效:
emulate -L zsh
setopt sh_word_split
# if not running in a separate shell, you'll want to restore the old value
export COLUMNS=1
list="first second third"
select var in $list; do
if [ x"$var" != x"" ]; then
echo $var
return
fi
done
如果在主交互式 shell 上运行,请恢复 COLUMNS 的旧值。