在/ usr / bin中/ env的不好解释(/usr/bin/env bad interpret

2019-07-29 07:57发布

试图让亚马逊的EC2命令行工具来工作。 这是我的.bash_profile样子。 我得到的错误:/users/zmjones/.ec2/bin/ec2-add-keypair:在/ usr / bin中/ ENV:坏的解释:不允许操作

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:$PATH
PATH=/opt/local/sbin:/usr/local/bin:/usr/x11/bin:/usr/texbin:$PATH
PATH=/usr/local/texlive/2011/bin/x86_64-darwin:$PATH
PATH=/Library/Frameworks/EPD64.framework/Versions/Current/bin:$PATH
EC2_HOME=~/.ec2
PATH=$PATH:$EC2_HOME/bin
EC2_PRIVATE_KEY=`ls $EC2_HOME/pk-*.pem`
EC2_CERT=`ls $EC2_HOME/cert-*.pem`
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/

export PATH

是否有人看到什么错呢? 我不知道我做错了。

的输出ls -l /usr/bin/env

-r-xr-xr-x  1 root  wheel  34720 Sep  8  2011 /usr/bin/env
zmjones-mbp:.ec2 zmjones$ /usr/bin/env
TERM_PROGRAM=iTerm.app
TERM=xterm
SHELL=/bin/bash
TMPDIR=/var/folders/x3/vrw5029d1rj9xblj8bmxl0m00000gn/T/ 
Apple_PubSub_Socket_Render=/tmp/launch-91y0bp/Render
OLDPWD=/Users/zmjones
USER=zmjones
COMMAND_MODE=unix2003
SSH_AUTH_SOCK=/tmp/launch-H3JJsl/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0:0
Apple_Ubiquity_Message=/tmp/launch-n2bT2X/Apple_Ubiquity_Message
PATH=/users/zmjones/.ec2/bin:/Library/Frameworks/EPD64.framework/Versions/Current/bin:/usr/local/texlive/2011/bin/x86_64-darwin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/x11/bin:/usr/texbn
PWD=/Users/zmjones/.ec2
 JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/
LANG=en_US.UTF-8
ITERM_PROFILE=Default
SHLVL=1
HOME=/Users/zmjones
ITERM_SESSION_ID=w0t0p0
LOGNAME=zmjones
EC2_PRIVATE_KEY=pk-mykey.pem
DISPLAY=/tmp/launch-6kkP5t/org.x:0
EC2_CERT=cert-mycert.pem
 _=/usr/bin/env

部分解决方案: tr -d '\r' < /users/zmjones/.ec2/bin/ec2-add-keypair > /users/zmjones/.ec2/bin/ec2-add-keypair

这似乎让命令来执行,但是他们现在不工作。 例如,我下载的EC2 API工具的新副本,把它们放在~/.ec2试图ec2-describe-images -o amazon ,并得到了坏的解释错误。 我改名ec2-describe-imagesec2-describe-images.bak跑了tr上面列出的命令,并再次尝试。 然后,我收到一个permission denied error 。 当我使用sudo运行它,它告诉我, EC2_HOME没有设置,但echo $EC2_HOME表示它是。 我跑chmod +x ec2-describe-images ,现在我回到同一坏interepreter错误。

Answer 1:

/users/zmjones/.ec2/bin/ec2-add-keypair具有DOS 行结束 。

修理:

mv /users/zmjones/.ec2/bin/ec2-add-keypair /users/zmjones/.ec2/bin/ec2-add-keypair.bak
tr -d '\r' < /users/zmjones/.ec2/bin/ec2-add-keypair.bak > /users/zmjones/.ec2/bin/ec2-add-keypair


Answer 2:

这发生在我的Windows,因为我在我的bash文件中的错误的头。 我有#!/usr/bin/bash ,而不是#!/usr/bin/env bash是便携版。



Answer 3:

我得到了完全相同的问题。

这个问题的原因是“取档工具”。

我已经安装第三方工具取档。 在解压缩过程中它可能会改变文件的行结束。

我意识到这一点之后,我删除了这个工具,并使用本机解压缩工具重新解压的EC2的拉链球。 ,问题就解决了。

希望这可能是你们同样的问题非常有用。



文章来源: /usr/bin/env bad interpreter