Faire un alias pour `` ls` qui comprend echo` csh
Question
Je veux faire un alias qui ajoutera un espace avant et après chaque fois que je utilisation ls
.
Si je viens d'utiliser ls
le résultat est proche de la ligne ci-dessus et en dessous, je trouve parfois difficile et déroutant de lire la sortie. J'ai donc commencé à utiliser la ligne:
echo "\n"; ls something ; echo "\n"
Y at-il un moyen de le mettre dans un alias, de sorte que chaque fois que je vais utiliser la commande ls
il ajoutera automatiquement les commandes echo
?
La solution
Ne pas csh / tcsh disponible donc je ne peux pas tester, mais cela devrait fonctionner
alias ls 'echo "\n"; ls \!* ; echo "\n"'
paramètres de ligne de commande dans tcsh / csh:
-
!!
est toute la ligne de commande -
!*
est tous les arguments de la commande -
!:1
est le premier argument de la commande -
!:2
est le second argument de la commande -
!$
est le dernier argument de la commande
Autres conseils
alias ls 'echo ; /bin/ls something; echo'
Notez que vous devez fournir le chemin complet pour ls, sinon le shell voit comme une tentative d'appeler l'alias de nouveau et se plaint de la tentative de récursivité.
Il est peut-être sage de ls
alias directement, puisque vous pouvez l'utiliser dans un script qui attend la sortie normale. Au lieu de cela, alias quelque chose comme lss
en vous .cshrc
:
alias lss 'echo; /bin/ls; echo;'
Vous n'avez pas besoin "\n"
parce echo
seul simple, imprime une nouvelle ligne.