KornShell (ksh) SegFault
-
18-09-2019 - |
Domanda
Ho trovato il seguente script causa di un errore di segmentazione e core in KornShell (ksh) su AIX.Qualcuno può spiegare perché ottengo i seguenti risultati?
doOutput(){
Echo "Something"
}
doOutput() >&1
O
doOutput(){
Echo "Something"
}
echo `doOutput()`
doOutput(){
Echo "Something"
}
doOutput()
doOutput(){
Echo "Something"
}
doOutput
O
doOutput(){
Echo "Something"
}
doOutput >&1
Soluzione
Chiamate a funzioni di conchiglie come ksh non utilizzare le parentesi.Essi sono utilizzati solo durante la definizione di funzione.
Corretto:
doOutput(){
Echo "Something"
}
doOutput
Se si chiama una funzione con parametri, è possibile separarli utilizzando spazi (senza parentesi):
doOutput(){
Echo "$1 and then $2"
}
doOutput go stop
Errato:
doOutput(){
Echo "Something"
}
doOutput()
Inoltre, perché sono reindirizzando stdout stdout (>&1
)?
Altri suggerimenti
Hai trovato un bug in ksh, e solo loro autori, o qualcuno con accesso alla fonte, può spiegare a voi.Reale ksh non ha usato per essere open source, ma forse è cambiato.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow