2017-03-18 15 views
0

Ich versuche, eine Funktion von der Eingabeaufforderung aufrufen, aber ich finde nicht die richtige Methode, um es aufzurufen.So rufen Sie die Funktion

Das ist mein Skript:

echo "Hello World!" 

test { 

    echo "Sample message" 
} 

ich unten Wege versucht:

sh-4.2$ main.sh test                                      
Hello World!                                        
./main.sh: line 5: usuage: command not found                                
A helpful message!                                      
./main.sh: line 8: syntax error near unexpected token `}'                             
./main.sh: line 8: `}'                   


sh-4.2$ . main.sh test()                                     
sh: syntax error near unexpected token `(' 

Kannst du mir bitte dabei helfen?

+0

@Inian, gerade jetzt hinzugefügt. – user3181365

+0

Verwenden Sie meine Antwort unten! – Inian

Antwort

2

paar Probleme hier, die Syntax für test Funktion falsch ist, müssen Sie die Klammern haben,

test() { 
    echo "Sample message" 
} 

export -f test 

Die export -f Syntax Sie können Ihre Funktionen an die Shell exportieren; sie von der Kommandozeile ausführen Sie das Skript in der aktuellen Shell wie

$ . ./main.sh 
Hello World! 

Jetzt können Sie die Funktion aufrufen test direkt von der Kommandozeile beziehen müssen, nachdem sie aus dem Skript ausgeführt haben,

$ test 
Sample message 

auch eine gute Praxis NICHT haben Funktionen Name test, weil sie denselben Namen ist ein shell eingebaut. Empfehlen Sie, einige benutzerdefinierte Namen dafür zu verwenden.

Verwandte Themen