2013-01-22 8 views
1

C'est la première fois que je tente de créer un script terminal, puis d'utiliser AppleScript pour exécuter le code. J'ai testé mon script terminal ligne par ligne dans le terminal (ça marche ...), mais j'aimerais le mettre dans un fichier qui peut être appelé par applescript. Jusqu'à présent, j'ai créé un fichier appelé "/Applications/MAMP/htdocs/global_admin/import_database_command_line.sh" où j'ai sauvé toutes les commandes individuelles, la première étant:Exécution d'un script shell via AppleScript

/Applications/MAMP/Library/bin/mysql --host=localhost -uroot -proot; 

J'utilise ensuite AppleScript pour appeler le script:

do shell script 
"/Applications/MAMP/htdocs/global_admin/import_database_command_line.sh" 

Malheureusement, pour chaque ligne dans mon script, je reçois une erreur, comme:

error "/Applications/MAMP/htdocs/global_admin/import_database_command_line.sh: 
line 1: : command not found 

Toute aide à coordonner mon AppleScript et le fichier qui contient mes commandes shell serait appréciée.

Répondre

2

Vous devez inclure #!/bin/sh dans la première ligne de votre fichier .sh

#!/bin/sh 

echo "Hello, world!" 

Vous devez ensuite faire le script exécutable:

chmod +x import_database_command_line.sh 
+0

Merci pour la réponse rapide! Maintenant, j'obtiens l'erreur: sh: /Applications/MAMP/htdocs/global_admin/import_database_command_line.sh:/bin/sh^M: mauvais interpréteur: Aucun fichier ou répertoire – Eric

+0

[Shell Scripting Primer] (https: // developer .apple.com/bibliothèque/ mac/# documentation/opensource/conceptuel/shellscripting/shell_scripts/shell_scripts.html # // apple_ref/doc/uid/TP40004268-CH237-SW3) – adayzdone

0

En effet, le 'do shell script' La commande AppleScript s'attend à exécuter les commandes shell contenues dans les guillemets. Il ne s'attend pas à appeler un autre script comme vous le faites. Placez simplement vos commandes dans les guillemets, séparés par des points-virgules.

do shell script "/ Applications/MAMP/Library/bin/mysql --host = localhost -uroot -proot; #other_command; #etc"

Link

Questions connexes