在 csh 中为“ls”创建一个包含“echo”的别名
我想创建一个别名,每次使用 ls 时都会在前后添加一个空格。 如果我只使用 ls ,结果会接近上面和下面的行,有时我会发现读取输出很难且令人困惑。因此,我开始使用以下行:
echo "\n"; ls something ; echo "\n"
有没有办法将其放入别名中,以便每次我使用 ls
命令时,它都会自动添加 echo< /代码> 命令?
I want to make an alias that will add a space before and after each time I use ls
.
If I use just ls
the result is to close to the line above and under it it I sometimes find it hard and confusing to read the output. So I've started to use the line:
echo "\n"; ls something ; echo "\n"
Is there a way to put it in an alias, so that each time I'll use the ls
command it'll automatically add the echo
commands?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
没有可用的 csh/tcsh,所以我无法测试,但这应该可以工作
tcsh/csh 中的命令行参数:
!!
是整个命令行!*
是全部命令的参数!:1
是命令的第一个参数!:2
是命令的第二个参数!$
是命令 的参数命令的最后一个参数Don't have csh/tcsh available so I cannot test, but this should work
Command line parameters in tcsh/csh:
!!
is the whole command line!*
is all the arguments of the command!:1
is the first argument of the command!:2
is the second argument of the command!$
is the last argument of the command请注意,您必须提供 ls 的完整路径,否则 shell 会将其视为再次调用别名的尝试,并抱怨递归尝试。
Note that you have to provide the full path for ls, otherwise the shell sees it as an attempt to call the alias again and complains about the recursion attempt.
直接使用
ls
别名可能是不明智的,因为您可能会在需要正常输出的脚本中使用它。相反,在.cshrc
中使用类似lss
的别名:您不需要
"\n"
因为echo
> 单独简单地打印换行符。It might be unwise to alias
ls
directly, since you might use it in a script which expects the normal output. Instead, alias something likelss
in you.cshrc
:You don't need the
"\n"
becauseecho
alone simple prints a newline.