Подтвердить что ты не робот

Функция вместо псевдонима в C shell login script

Я видел в этом тему, что вы можете добавить функцию в login script в оболочку вместо псевдонима, если вы хотите использовать параметры. Тем не менее, я поместил следующий код внутри моего .cshrc файла в разделе с aliasses:

function gf()
{
    grep -n $1 `find .` | grep -v "can't open"
}

Но когда я набираю source.cshrc, я получаю сообщение об ошибке: Badly placement(). Является ли синтаксис разным для оболочки C, чем в оболочке Bash? Если да, то какой правильный синтаксис?

4b9b3361

Ответ 1

К сожалению, вы не можете определить функции в csh, как вы можете в большинстве других оболочек. Эта функция не существует в csh.

Единственная альтернатива - создать script и поместить его в каталог на вашем PATH, например. ~/bin.

Ответ 2

Вот мое решение:

#!/bin/csh

if ("$1" == "run") goto $2

echo "Now in default mode"

echo "Calling myself"

csh -f dummy run sub1

csh -f dummy run sub2

exit


sub1:

echo "In sub1"

exit

sub2:

echo "In sub2"

exit