редактировать: теперь я понимаю лучше. Вы можете сделать это, просто начав свои «аргументы» с тире. Вот пример, который использует функцию для ясности:
function get_foo_completions
echo --bar
echo --baz
echo --biz
set prev_arg (commandline -pco)[-1]
test "$prev_arg" = print
and echo --conditional
end
complete -c foo -a '(get_foo_completions)' -f
Аргумент --conditional
будет напечатан, только если предыдущий аргумент - print
, который показывает, что они могут быть динамическими.
Насколько мне известно, это пока невозможно. Параметры являются декларативными, и только аргументы этих параметров могут быть динамическими.
Если вы дадите более подробную информацию о вашем случае использования, я мог бы предложить другие подходы.