wenn die Datei ist ein link auf LINUX-OS
Ich versuche zu prüfen, ob ein symbolischer link existiert, von einem KornShell (ksh) - Skript mit "-h Dateiname" Befehl. Dies funktioniert gut auf HP-Boxen.
Nicht sicher, was ist die richtige option für Linux -, AIX-und Solaris-Kisten.
Jede Einsicht bezüglich dieser?
InformationsquelleAutor kadeshpa | 2009-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
-h
ist Teil der POSIX-Spezifikation; es sollte überall funktionieren, das ist vage zumutbar ist.Laut
man test
auf Mac OS X:-L
ist auch standardisiert, so dass, wenn Sie irgendwo zu finden, dass-h
nicht funktioniert, sollten Sie versuchen-L
statt.-L
besteht in der POSIX-Spezifikation als gut, sollten wir nicht nur empfehlen-L
anhand der Notizen in Ihrer manpage?InformationsquelleAutor Brian Campbell
Es ist -h (auf linux-Systemen auch, zumindest (bash meine shell):
Überprüfen
man test
um die verfügbaren Operatoren, die Sie zur Verfügung haben zu verwenden, auf Dateien und strings im gegebenen enviorment.InformationsquelleAutor whaley
Die beste Antwort ist, zu versuchen, was der 'test' - man-page sagt, dass auf Ihrem system. Wenn das scheint zu funktionieren, suchen Sie nicht weiter. Allerdings, wenn es scheint nicht zu funktionieren, oder wenn Sie Fragen haben, mehr obskure Optionen zu prüfen, dann sollten Sie die man-Seite zur shell zu sehen, wenn 'expr' oder '[' built-ins. In diesem Fall, die shell verwenden möglicherweise eine interne Implementierung anstelle von Aufruf der expr-Dienstprogramm von /bin. Auf Solaris habe ich verifiziert, dass ksh93 behandelt [ als builtin (obwohl der man-page scheint nicht so zu sagen). Aus dem truss-Ausgabe können Sie sehen, dass ksh läuft nicht der expr-Befehl für [.
InformationsquelleAutor Chris Quenelle
Thw zwei mögliche Optionen sind
Wenn $? 0 ist dann die Datei verknüpft ist, andernfalls werden die nicht verlinkt sind, werde ich die erste Möglichkeit bevorzugen, statt.
InformationsquelleAutor Sachin Chourasiya