在csh中为`ls`创建包含`echo`的别名

时间:2011-06-15 16:38:58

标签: linux alias csh ls

我想创建一个别名,在每次使用ls之前和之后添加空格。 如果我只使用ls,结果是接近上面和下面的行,我有时会发现读取输出很难并且很困惑。所以我开始使用这一行:

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

有没有办法把它放在别名中,这样每次我使用ls命令时它会自动添加echo命令?

3 个答案:

答案 0 :(得分:6)

没有可用的csh / tcsh,所以我无法测试,但这应该可行

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

tcsh / csh中的命令行参数:

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

答案 1 :(得分:4)

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

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

答案 2 :(得分:4)

直接别名ls可能是不明智的,因为您可能会在需要正常输出的脚本中使用它。相反,在您lss中添加.cshrc之类的内容:

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

您不需要"\n",因为echo仅打印换行符。