我正在尝试设置一个别名,以便我可以快速cd
访问以下目录:
/home/user/asreera/Aravind/sample/src
/home/user/asreera/Aravind/sample2/src
首先我设置变量:
set use=/home/user/asreera/Aravind/
然后我设置了别名:
alias mov 'cd $use/*/src'
我的预期用途是:
mov sample
它应该转到目录/home/user/asreera/Aravind/sample/src
。
如果是mov sample2
这样,应该转到目录/home/user/asreera/Aravind/sample2/src
当我使用此别名时出现错误cd:too many arguments
有人可以告诉我我在这方面做错了什么吗?
答案1
你应该使用:
alias mov 'cd "$use"/\!*/src'
!*
在 csh/tcsh 中,别名解析为正在运行的命令的所有参数(即您在 后面放置的内容mov
)。
看csh
在和中写入别名tcsh
对于其他选项:
!!
是整个命令行!*
是命令的所有参数!:1
是命令的第一个参数!:2
是命令的第二个参数!$
是命令的最后一个参数
每个人都必须逃脱\
。
有人可以告诉我我在这方面做错了什么吗?
当你执行:
mov sample
Shell 将别名解析为:
cd $use/*/src sample
然后展开变量并执行:
cd /home/user/asreera/Aravind//*/src sample
cd
命令抱怨它有太多参数。