Конечно!Как и в bash (или на любом другом интерпретируемом языке), все, что вам нужно сделать, это создать файл, дать ему разрешения на выполнение и написать в нем свой скрипт fish!
- Первая строка файла должна быть
#!/usr/bin/fish
(Измените этот путь, если ваша установка fish находится в другом месте. Вы можете проверить, позвонив по номеру which fish
) - Начните писать свой скрипт fish, ваши аргументы будут
$argv[1]
, $argv[2]
...etc - Дайте вашему сценарию права на выполнение:
chmod +x myscript
- Поместите свой сценарий где-нибудь в
$PATH
(например, /usr/local/bin
), чтобы вы могли вызывать его как другие команды в системе.
Вот бесполезный пример сценария, который печатает переданные вами аргументы:
#!/usr/bin/fish
for i in $argv
echo $i
end
Для анализа аргументов вы можете использовать argparse с fish_opt .
Что вы делаете: Вы указываете, с какими флагами fish_opt
, например:
set -l options (fish_opt -s n -l name --required-val)
set options $options (fish_opt -s h -l help)
, где -s
сопровождается краткой формойза вашим флагом и -l следует длинная форма.
Затем вы используете argparse
для разбора ваших аргументов следующим образом:
argparse $options -- $argv
Затем вы можете проверить свои флаги следующим образом:
if set -q _flag_help
echo "Haalp!"
return 0
end
Обратите внимание, что как бы вы ни называли ваш флаг,он будет установлен в переменную формата _flag_myflag
Вот полный пример:
#!/usr/bin/fish
set -l options (fish_opt -s n -l name --required-val)
set options $options (fish_opt -s h -l help)
argparse $options -- $argv
if set -q _flag_help
echo "Haalp!"
exit 0
end
if set -q _flag_name
echo My name is $_flag_name
exit 0
end
Теперь давайте назовем его:
$ myscript
$ myscript --help
Haalp!
$ my_script --name "Anthony"
My name is Anthony