Quelle est la différence entre utiliser “-ne” et “! =” Pour évaluer le code de sortie dans KornShell (ksh)?

Quelle est la différence entre les deux extraits de code KornShell (ksh) suivants, car ils se comportent exactement de la même manière lors des tests? Le code de retour (par exemple, code de sortie, statut de retour, état de sortie, code de retour) provient d’une commande SQL * Plus si cela est important.

kornShellSnippet1.ksh

returnCode=${?} if [[ ${returnCode} -ne 0 ]]; then #successful command returns 0# 

kornShellSnippet2.ksh

 returnCode=${?} if [[ ${returnCode} != 0 ]]; then #successful command returns 0# 

-ne est un test numérique -ne != est un test de chaîne. Depuis que tu connais $? est un nombre, il est logique d’utiliser le test numérique.

Pour autant que je sache, -ne syntaxe héritée est prise en charge pour la compatibilité descendante, tandis que (dans les doubles crochets ksh au moins) != Etc sont la syntaxe ksh native.

Pour comparer des nombres, n’utiliseriez-vous pas la syntaxe arithmétique?

 let returnCode=${?} if (( returnCode != 0 )); then #successful command returns 0#