读取命令选项在旧的操作系统Linux上不可用.允许默认值的其他命令



我们有500多台linux主机,运行各种操作系统;用默认输入提示用户的read命令在soem上不起作用,在其他人身上起作用。

有没有一个命令,我可以在所有这些不同的操作系统中使用,以允许默认输入

2.6.32-504.el6.x86_64  = Works

2.6.18-348.6.1.el5   = Does not work 

旧的读数中没有I选项。读取[-ers][-u fd][-t超时][-p提示][-a数组][-n nchars][-d delim][名称…]

我基本上想让用户选择在提示时覆盖默认值,但如果他们不这样做,我想使用默认值

example:
read -e -p "Enter Your Name:" -i "Allesandra" N

你们能提供一个替代方案吗?感谢

大多数shell中一个未充分利用的功能是,如果变量未设置,则可以为其提供默认值。

read -e -p "Enter Your Name:" N
: ${N:=default}

但是,我希望如果您的read ... -i ...版本不支持-i,那么您会出现错误。

IHTH

您的情况正是POSIX标准存在的原因;坚持下去。根据操作系统的不同,bash甚至可能不是默认的shell。

printf 'Enter Your Name, or leave blank for default:n'
printf '(Allesandra): '
read name && [ -n "$name" ] || name=Allesandra

最新更新