我在这个主题中看到,如果你想使用参数,你可以在 shell 登录脚本中添加一个函数而不是别名。但是,我将以下代码放在我的 .cshrc 文件中的别名部分:
function gf()
{
grep -n $1 `find .` | grep -v "can't open"
}
但是当我键入 source .cshrc 时,我收到错误消息:Badly placed ()'s。C shell 的语法与 Bash shell 的语法不同吗?如果是这样,正确的语法是什么?
不幸的是,您不能csh
像在大多数其他 shell 中那样定义函数。中不存在此功能csh
。
唯一的选择是创建一个脚本并将其放置在您的PATH
eg目录中~/bin
。
这是我的解决方案:
#!/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
如果您只想传递一个论点,只需将论点放在\!$
您希望论点所在的位置即可。
例如:
如果你投入alias mygrep grep -i \!$ myfile.txt
,~/.cshrc
并且运行mygrep mykeyword
,csh
就会运行alias mygrep grep -i mykeyword myfile.txt
。
有关更多信息,请参阅此内容。