Quelle est la différence entre l'exécution d'un script shell sous ./script.sh et sh script.sh

J'ai un script qui ressemble à ce

#!/bin/bash

function something() {
 echo "hello world!!"
}

something | tee logfile 

J'ai mis de l'autorisation d'exécuter ce fichier et quand j'essaie d'exécuter le fichier comme ceci

 $./script.sh

il fonctionne parfaitement bien, mais lorsque je l'exécute sur la ligne de commande comme ceci

$sh script.sh 

Il génère une erreur. Pourquoi cela se passe et quels sont les domaines dans lesquels je peux résoudre ce problème.

source d'informationauteur Ritesh M Nayak