我有一个 bash 脚本,在我的工作 Ubuntu 机器上运行良好,但遗憾的是,当我尝试在我的 Mac OSX Lion Mountain Lion 笔记本电脑上运行它时,它就崩溃了。杀死它的那行是这样的:
while [[ -z "$SSHFS_PATH" ]] ; do
read -e -p "Please enter the path on which to mount your file system: `echo -e $'\n > '`" -i "~/aws-dev" SSHFS_PATH;
done
它抛出这个错误:
-bash: read: -i: invalid option
read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...]
所以看起来 OSX 版本的读取命令不接受-i
,用于建议默认值。为什么?可以采取什么措施来解决这个问题?
谢谢 :)
Mac OS X 10.7 Lion(以及迄今为止所有更新的版本,感谢@kojiro)附带bash 3.2
然而read -i
被介绍为bash 4.0-alpha
(参见变更日志 http://tiswww.case.edu/php/chet/bash/CHANGES).
您可以安装更新版本的bash
using homebrew http://brew.sh/或者自己提供一个非readline默认值,例如
read -p "Path? (default: /bar): " var
[ -z "${var}" ] && var='/bar'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)