Я читал скрипт завершения git.fish (/usr/local/Cellar/fish/2.1.2/share/fish/completions) для оболочки рыбы, и я столкнулся с некоторыми проблемы с пониманием того, что означает синтаксис.fish shell -eq и -a in if if
В блоке
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
означает?
Я новичок в рыболовной оболочке, и я пытаюсь понять синтаксис, пытаясь написать собственный скрипт завершения для программы. Помощь будет принята с благодарностью.
спасибо.
Единственное отличие состоит в том, что 'test' встроен в оболочку, поэтому вы сохраняете выполнение внешней команды. –
Спасибо, что ответили так хорошо. TIL '/ bin/[' является исполняемым в системе. –
Оба теста и [встроены в большинство снарядов, включая рыбу. Нет разницы в производительности. –