2016-05-24 3 views
0

Ich frage mich ... gibt es einen Operator wie -f -e -d -s, die ich im Bash-Scripting verwende, aber wie man sie in den Handbuchseiten sucht? was der Befehl bitteWie finde ich die Manpage der Operatoren, die in der if-Anweisung im Bash-Scripting verwendet werden?

Beispiel:

if [[ -e file2 ]]; then 
     echo "file2 exists" 
fi 
+0

Es gibt überhaupt nichts spezifisch für "if" über "Test" -Operatoren. Sie können sie auch außerhalb einer 'if'-Anweisung verwenden:' [-e Datei2] || cp file2.tmpl file2' –

+0

... die kanonische Referenz, btw, ist http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html - definiert diese Operatoren * alle * POSIX-konformen Implementierungen von ' Test "muss zur Verfügung stellen. –

+0

Kanonisch für diejenigen, die von POSIX unterstützt werden. Es gibt zusätzliche Operatoren, die von 'bash' unterstützt werden und nur auf der 'bash'-Manpage dokumentiert sind. – chepner

Antwort

2

Der Befehl, um die genaue Liste der Operatoren in dem Bash-Handbuch zu finden ist:

$ LESS=+/'^CONDITIONAL EXPRESSIONS' man bash 

Es ist eine Alternative, wenn Sie in einem Bash-Shell arbeiten:

$ help test 

bieten Sowohl die Liste von Bedienern innerhalb test, und [[.

2

Eigentlich ist [ bash heute und [[ ein Bash-Syntaxelement gebautet. Während die binäre [ von Coreutils sowie test installiert werden kann, beschreibt die Manpage test oder [ das Verhalten dieser Binärdatei nicht das Verhalten der Bash-Builtin.

Verwenden

help [ 

oder

help [[ 

das Halten für andere builtins als auch im Auge behalten. Sie können die Liste der Builtins mit compgen -b erhalten.


Eine Sache, [ ist ein Alias ​​des test builtin. Sie erhalten ein viel ausführlicheres Handbuch, wenn Sie help test als das von help [ eingeben. Danke choroba!.

+1

'help test' gibt mehr Details als' help [', zumindest in meiner Bash-Version. – choroba