在csh中创建一个包含echo的“ls”别名

3

我想创建一个别名,每次使用ls命令时在其前后添加空格。如果我只使用ls命令,则输出结果太接近上一行和下一行,有时很难阅读和理解输出内容。因此,我开始使用以下命令:

echo "\n"; ls something ; echo "\n"

有没有一种方法可以将它放在别名中,这样每次使用ls命令时它都会自动添加echo命令?

请不要写回答或评论说我不应该使用csh。 - SIMEL
3个回答

6

我没有csh/tcsh可用,所以无法测试,但是这应该可以工作。

alias ls 'echo "\n"; ls \!* ; echo "\n"'

tcsh/csh中的命令行参数:

  • !!代表整个命令行
  • !*代表命令的所有参数
  • !:1代表命令的第一个参数
  • !:2代表命令的第二个参数
  • !$代表命令的最后一个参数

4
alias ls 'echo ; /bin/ls something; echo'

请注意,您必须提供ls的完整路径,否则shell会将其视为再次调用别名并抱怨递归尝试。

4

直接别名ls可能不明智,因为你可能会在期望正常输出的脚本中使用它。相反,在你的.cshrc中别名一些类似于lss的内容:

alias lss 'echo; /bin/ls; echo;'

你不需要"\n",因为只使用echo命令就可以打印出一个新行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接