在 Sh 中创建 if 子句
我在一个由 .bashrc 和 .zshrc 来源的文件中有以下内容。 语法来自网站。
if $SHELL=/bin/zsh
then
# to not java .class when running java
myclasslist () { reply=(${$(ls *.class)%.class}) }
compctl -K myclasslist java
fi
Zsh 和 Bash 都对此感到不安。
如何在 sh 中创建 if 子句?
I have the following in a file which is sourced both by .bashrc and .zshrc. The syntax is from the site.
if $SHELL=/bin/zsh
then
# to not java .class when running java
myclasslist () { reply=(${$(ls *.class)%.class}) }
compctl -K myclasslist java
fi
Both Zsh and Bash go upset of it.
How can you make a if -clause in sh?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要将您的条件包装在测试运算符中(以及引号以养成习惯):
在 shell 中:
在 bash 中:
You need to wrap your condition in the test operator (as well as quotes to get in the habit):
In shell:
In bash:
您需要
test
别名[
命令:You need the
test
alias[
command:在您提到的网站上,他们不使用测试运算符([]),因为他们说:
if 后面必须跟一个“布尔语句”,如果该语句返回 0,则实际执行“then”...
在您的情况下,Seth 的答案就是您正在寻找的。
On the web site you mention, they do not use the test operator ([]) because they say:
The if must be followed by a "boolean statement" and if this statement returns 0, the "then" is actually executed...
In your case, Seth's answer is what you're looking for.