我在一个由.bashrc和.zshrc提供的文件中有以下内容。语法来自site。
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 -clause?
答案 0 :(得分:4)
你需要在测试操作符中包含你的条件(以及引用习惯的引号):
在shell中:
#!/bin/sh
if [ "$SHELL" = "/bin/zsh" ]; then
# do your thing
fi
在bash中:
#!/bin/bash
if [ "$SHELL" == "/bin/zsh" ]; then
# just do it!
fi
答案 1 :(得分:2)
您需要test
别名[
命令:
if [ "$SHELL" = "/bin/zsh" ]
then
myclasslist () { reply=(${$(ls *.class)%.class}) }
compctl -K myclasslist java
fi
答案 2 :(得分:0)
在您提到的网站上,他们不使用测试运算符([]),因为他们说:
例如,如果cat运行,则返回0 成功,如果遇到1则成功 错误
if必须后面跟一个“boolean statement”,如果这个语句返回0,那么“then”实际执行...
在你的情况下,赛斯的回答是你正在寻找的。 p>