Le problème est que lorsque vous le faites à partir de la ligne de commande, ce que vous faites est de démarrer bash
sous sudo
et ensuite envoyer ces deux commandes suivantes à bash
et non la coquille originale. (le signe étant que vous devez exit
deux fois)
Quand vous le faites dans un script, le bash
ne sort jamais, donc les deux commandes suivantes ne sont jamais exécutées.
Ce n'est pas aussi élégant que la solution AppleScript, mais si vous voulez faire cela comme un script à partir de la ligne de commande, l'équivalent serait :
#!/bin/sh --
sudo bash -c 'echo "plugin L2TP.ppp">>/etc/ppp/options'
sudo bash -c 'echo "l2tpnoipsec">>/etc/ppp/options'
Si l'on n'avait pas besoin de la redirection io (l' >>
), nous pourrions simplement appeler la commande directement par l'intermédiaire de sudo
sans avoir besoin de la sudo sh -c
truc. (et notez que j'ai dû citer l'argument à sh -c
pour éviter qu'il n'exécute l'écho en tant que Root, mais que le fichier s'ajoute en tant qu'utilisateur d'origine).
Il sera travailler en tant que .command
depuis le Finder, mais il fera apparaître une fenêtre de terminal, vous demandant votre mot de passe, et si vous l'entrez correctement, il exécutera les commandes. (en supposant que vous ne vous soyez pas récemment authentifié pour sudo
... si vous l'avez fait, il s'exécutera sans demander)