質問

私は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の両方が、それの動揺行きます。

-clause場合は、

どのようにして、SH中、aを作ることができますか?

役に立ちましたか?

解決

あなたは(習慣に取得するだけでなく、引用符)テスト演算子で条件をラップする必要があります

シェルでます:

#!/bin/sh
if [ "$SHELL" = "/bin/zsh" ]; then
       # do your thing
fi

bashでます:

#!/bin/bash
if [ "$SHELL" == "/bin/zsh" ]; then
    # just do it!
fi

他のヒント

あなたはtestエイリアス[コマンドを必要とします:

if [ "$SHELL" = "/bin/zsh" ]
then
    myclasslist () { reply=(${$(ls *.class)%.class}) }
    compctl -K myclasslist java
fi

:彼らが言うので、

あなたが言及したウェブサイトでは、彼らはテスト演算子([])を使用していません

  それが実行されている場合、

たとえば、猫は0を返します。   成功した、と1それが発生した場合   エラー

ザ・「ブール文」が続くとしなければならない場合は、この文は0を返す場合は、「それから」実際に実行される...

あなたのケースでは、セスの答えはあなたが探しているものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top