Regardez test. -d vérifiera si l'argument est un répertoire, -f pour le fichier. Donc dans un script pourrait avoir quelque chose comme if [-f "$ 1"]; alors moins "$ 1"; elif [-d "$ 1"]; alors ls "$ 1"; Fi . Bien que je sois sûr qu'il y ait des erreurs car je n'utilise pas beaucoup de scripts, ajoutez-les simplement dans un fichier, avec shebang, et rendez les exécutables ..
Guy,
Réponses:
1
La chose de base que vous voulez pourrait ressembler à quelque chose comme ça:
function my_less(){
obj=$1
shift
test -d $obj && ls $obj $@
test -f $obj && less $obj $@
}
ensuite
my_less thing
fera un lsou un lessselon le type.
Le obj=$1saisit le premier argument de la fonction. Les shiftchangements les arguments restants « à gauche » et $@est la liste des arguments en cours.
Si vous voulez avoir un traitement rudimentaire des commutateurs, vous pouvez étendre cette fonction comme ceci:
function my_less(){
switches=
obj=while true
docase $1 in-*)
switches="$switches $1"
shift
;;*)
obj=$1
shift
break;;esacdone
test -d $obj && ls $switches $obj $@
test -f $obj && less $switches $obj $@
}
Cela collectera tous les principaux commutateurs et définira objle premier non-commutateur. Cela fera souvent la mauvaise chose, mais il ne s'agit que d'une suggestion pour la prochaine étape.
Réponses:
La chose de base que vous voulez pourrait ressembler à quelque chose comme ça:
ensuite
fera un
ls
ou unless
selon le type.Le
obj=$1
saisit le premier argument de la fonction. Lesshift
changements les arguments restants « à gauche » et$@
est la liste des arguments en cours.Si vous voulez avoir un traitement rudimentaire des commutateurs, vous pouvez étendre cette fonction comme ceci:
Cela collectera tous les principaux commutateurs et définira
obj
le premier non-commutateur. Cela fera souvent la mauvaise chose, mais il ne s'agit que d'une suggestion pour la prochaine étape.la source