私はシェルスクリプトを書いていますが、もっと具体的にはZSH関数と言うべきですし、gitリポジトリのようなものの状態をチェックするために、シェルスクリプトが引数 ' - 'で処理されていない
しかし、私は特定のコマンドで多くの問題を抱えています。別のstackoverflowの投稿では、私はgitリポジトリのルートフォルダに印刷するためのコマンドが見つかりました:私は
$(git rev-parse --show-top-level)
適切な値が返されを実行した場合、私の実際のzshのインスタンスで
git rev-parse --show-top-level
をし、すべてが順調です。しかし、私のスクリプト内のこのアプローチはうまく機能していません。私はすべての権利、今、私はあなたについて知らないが、これはこれを行うには間違っ道(いない最初の行であることを私には思える
[ $(git status &>/dev/null) $? -eq "0" ] && {
git_name=$("git rev-parse --show-top-level")
echo $(eval $git_name)
}
:私は少しコンテキストをあげますそれと)。これの出力はおおよそ次のとおりです。
command not found: git rev-parse --show-top-level
私がこれを書いべきであると思われる方法は次のとおりです。
--show-top-level
と終了ステータスは次のとおりです。
[ $(git status &>/dev/null) $? -eq "0" ] && {
git_name=$(git rev-parse --show-top-level)
echo $git_name
}
これの出力があります0
私の質問は、これらのどちらも機能しないのですが、これを実装する正しい方法は何でしょうか?私の推測では、スペースの後に二重破棄された引数があり、最後の長い引数が(少なくとも2番目の例では)コマンドそのものとして扱われているということがありますが、それは私の直感の程度です。
ヘルプありがとうございました! git rev-parse
周りに二重引用符は不要であり、引数が--show-toplevel
、ない--show-top-level
あるべき
[ $(git status &>/dev/null) $? -eq "0" ] && {
git_name=$(git rev-parse --show-toplevel)
echo $(eval $git_name)
}
:
素晴らしい!どうもありがとうございました! –