Псевдонимы в Tcsh ограничены; для более продвинутых вещей, я обнаружил, что лучший способ заключается в source
а (т) CSH сценариев, например, так:
alias my-cmd 'source ~/.tcsh/my-cmd.tcsh'
И ~/.tcsh/my-cmd.tcsh
будет содержать что-то вроде:
if ($1 != '') then
echo "we have an argument: $1"
else
echo "we don't have an argument"
endif
Пример вывода:
% my-cmd
we don't have an argument
% my-cmd hello
we have an argument: hello
Теперь, также может быть возможно сделать это только с псевдонимом, но это будет гораздо более ремонтопригодны & очиститель в конечном счете, ИМХО.
(Я принимал tcsh здесь, так как почти все, или, возможно, даже все, c shells являются tcsh в эти дни).
его выходит за рамки любого механизма псевдонимов оболочки ([ТКС] ш) для обработки аргументов. '[t] csh' не выполняет функции, поэтому @PhillipMFeldman это ваш лучший выбор. Либо это, либо переключиться на оболочку, которая поддерживает функции, что, конечно же, является «правильным ответом». Я понимаю, что ваша рабочая среда может не допускать этого, поэтому, если это так, используйте вышеизложенное! Всем удачи. – shellter
@shellter "* переключиться на оболочку, которая поддерживает функции, что, конечно же, является« правильным ответом »... Ну нет? Просто потому, что (t) csh не поддерживает определенную функцию или потому, что вам не нравится он переключает его на «правильный» ответ ... – Carpetsmoker
Хм ... Извините, если я обидел. Не намерение. Может быть, я должен был сказать OP, либо использовать это работоспособное решение (которое у меня есть), либо переключиться на оболочка, которая поддерживает функции, поскольку вы, похоже, хотите, чтобы функции поддерживались только функциями. Удачи всем! – shellter