Macos 无法从“中运行bash脚本示例”;linux命令行,一个完整的介绍,第二个“;
下面是我的zsh脚本的一个示例,该脚本是从原始脚本修改而来的:Macos 无法从“中运行bash脚本示例”;linux命令行,一个完整的介绍,第二个“;,macos,bash,shell,unix,zsh,Macos,Bash,Shell,Unix,Zsh,下面是我的zsh脚本的一个示例,该脚本是从原始脚本修改而来的: #!/bin/sh set -e # read-default.sh: supply a default value if user preses Enter key. read -e -p "What is your user name? " -i $USER echo "You answered: '$REPLY'" 以下是这本书的原始脚本: #!/bin/bash # read-default: supply a de
#!/bin/sh
set -e
# read-default.sh: supply a default value if user preses Enter key.
read -e -p "What is your user name? " -i $USER
echo "You answered: '$REPLY'"
以下是这本书的原始脚本:
#!/bin/bash
# read-default: supply a default value if user presses Enter key.
read -e -p "What is your user name? " -i $USER
echo "You answered: '$REPLY'"
在运行zsh脚本之后,我犯了一个错误:
read-default.sh: line 7: read: -i: invalid option
read: usage: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array]
[-n nchars] [-d delim] [name ...]
我将非常感谢您的帮助!:) 正如您在shell的错误消息中所看到的,在调用
read
时,您不能使用-i
标志。要解决您的问题,您需要检查$REPLY
是否为空,如果为空,则提供默认值。您的脚本是用什么语言编写的
用bash
、zsh
和sh
编写的Shell脚本略有不同
似乎您正在使用bash
功能,但使用sh
运行代码
read
命令是一个shell内置命令。查看相应的手册页,了解shell允许哪些选项
例如,将shebang(第一行)改回
#就足够了/bin/bash
或使用bash read default显式运行脚本。sh
您不能将-i
选项用于read
哦,谢谢,但是我如何以另一种方式运行此脚本?您需要检查$REPLY
是否为空。非常感谢,我一直在考虑这个问题!在bash书籍中使用zsh,或者反过来使用zsh,这不是一个很好的实践;它们是不同的外壳,具有不同的扩展和与POSIX sh的不同偏差。无法投票支持您的答案,没有声誉,再次感谢。)@克斯特亚维特,哦,真遗憾:-)是的,因为这是我的第一个问题,你是第一个帮助我的人!你是说你的答案吗?@kostyawhite,是的,还有什么?:)我使用zsh作为我的登录shell,我已经解决了这个问题,如您所说更改了shebang,并使用bash
运行脚本,谢谢!