魚の殻のgit.fish完了スクリプト(/usr/local/Cellar/fish/2.1.2/share/fish/completions)を読んでいたところ、構文の意味を理解する上でいくつかの問題が発生しました。
ブロックでは、
function __fish_git_needs_command
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 -a $cmd[1] = 'git' ]
return 0
end
return 1
end
cmd
として設定されていることを理解していcommandline -opc
ます。しかし、次のステートメント(count $cmd) -eq 1 -a $cmd[1] = 'git'
では-eq
、-a
どういう意味ですか?
私はfishshellを初めて使用し、プログラム用に独自の完了スクリプトを作成して構文を理解しようとしています。助けていただければ幸いです。
ありがとうございました。
実際-eq
、-a
魚の構文の一部ではありません。それらは普通の議論です!
if [ (count $cmd) -eq 1 -a $cmd[1] = 'git' ]
ここで開く角括弧は、実際にはcatやgrepのようなコマンドです。あなたは本当にファイルを持っています/bin/[
。test
同じことであるコマンドを介して理解する方が簡単かもしれません:
if test (count $cmd) -eq 1 -a $cmd[1] = 'git'
今ではそれを見るのは簡単だ-eq
と-a
に渡されて普通の引数でtest
魚になし構文の意味で、。
test
awkやsedのような独自の小さな言語があります。それについてman test
学ぶために見てください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加