Frage

habe ich ein Problem mit diesem. Es wird mich immer wieder zurückkehrt, kein Verzeichnis, sondern ist sicherlich

#!/usr/local/bin/bash  
DIR=$1  
if [ -d "$DIR" ]; then  
        ls -1Apl /home/$DIR | grep -v /\$  
else  
        echo "not a directory"
fi

Eine weitere Sache, ich brauche einen kleinen Hinweis. Ich muß die Liste von Dateien von einem bestimmten Benutzer in einem bestimmten Verzeichnis, wo ich sowohl für den Benutzer und das Verzeichnis als Parameter erhalten. Nur Vorschläge, bitte.

War es hilfreich?

Lösung

Sind Sie im /home Verzeichnis, wenn Sie das ausführen? Wenn nicht, sollten Sie es ändern zu:

if [ -d "/home/$DIR" ]; then

den ls Befehl entsprechen. Dies wird vorausgesetzt, Sie es mit so etwas wie myscript pax laufen das /home/pax Verzeichnis zu prüfen, was der Fall zu sein scheint.

Und wenn Sie nur wollen, um diese Dateien auflisten dort von einem bestimmten Benutzer gehören, können Sie awk verwenden, um nur die mit Spalte 3 Satz auf den gewünschten Wert ($usrnm) zu drucken, so etwas wie:

ls -1Apl /home/$DIR | grep -v /\$ | awk -v user=${usrnm} '$3==user{print}{}'

Andere Tipps

Sie testen nicht für die Existenz des gleichen Verzeichnis wie Sie zur Liste sind versuchen - vielleicht haben Sie mittlere -d "/home/$DIR"? Oder von Ihrer Anforderung, haben Sie zwei Parameter haben?

user="$1"
dir="$2"

# and then examine "/home/$user/$dir"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top