# comment rendre un fichier executable possible à l'écriture ?



## johny12 (13 Juillet 2008)

Je m'explique:

J'ai fais un script et au moment de l'enregistrement, inatention je l'enregistre comme fichier executable ...

Mais maintenant je voudrais le modifier ... Est-ce possible ou je vais devoir à nouveau passer quelques semaines a le refaire ?

Cordialement johny


----------



## johny12 (13 Juillet 2008)

ps: ou bien comment pouvoir repecher les donnés présentes


----------



## Dr_cube (14 Juillet 2008)

Si c'est un fichier texte, alors tu peux passer par le Terminal (dans Utilitaire, mais cherche avec Spotlight c'est plus cool ^^). 

Dans le Terminal, tu te positionnes dans le répertoire où se trouve le fichier : 
cd Desktop/mon_dossier_ou_se_trouve_mon_fichier/

Ensuite tu fais 
ls -la 
pour vérifier les droits sur le fichier. Dans la colonne de gauche tu devrais voir un truc du genre 
-rwxr-xr-x
Le ou les x signifient que le fichier est exécutable. Mais le ou les r signifient que le fichier est accessible en lecture. Donc n'importe quel éditeur de texte peut l'ouvrir. Si tu sais te servir d'emacs, tu tappes : 
emacs mon_script
et ton fichier s'ouvrira et tu pourras le modifier. Si tu ne connais pas emacs, alors tu n'as qu'à faire : 
more mon_script > mon_nouveau_script
Cette commande va recopier le contenu de ton script dans un autre fichier, et normalement il n'aura pas de droit d'exécution, donc tes éditeurs de texte habituels l'ouvriront sans problème. 

Sinon, pour enlever les droits d'exécution : 
chmod ugo-x mon_script

Pour ajouter les droits d'exécution sur un script : 
chmod ugo+x mon_script

De même avec -r, +r, -w, +w pour les droits de lecture et d'écriture. 
ugo signifie "user, group, other", et correspondent aux 3 colonnes dans rw- r-- r--
Donc si tu mets seulement "u" au lieu de "ugo" ça va changer uniquement la première colonne, si tu mets seulement "g" ça va changer la deuxième etc. 
En principe il vaut mieux ne donner des droits d'écriture qu'au user. 

Voilà, j'espère que cette initiation aux commandes Unix te sera utile ^^.


----------



## johny12 (14 Juillet 2008)

merci beaucoup

Mais je m'y perd un peu ^^ c'est un script enregistré comme fichier executable, son nom est "final" et il est enregistré sur le bureau
Donc pourrais-tu me dire quel est exactement la commande à rentrer dans le terminal pour que je puisse copier les données présentes dedans, merci  

/(en fait je suis vraiment pas à l'aise avec le termibal c'et pou ça)/


----------



## Dr_cube (14 Juillet 2008)

Le plus simple c'est de faire : 
cd Desktop/
more final > final.txt

Et le tour est joué, ton script se retrouve dans un beau fichier texte nommé final.txt. 

Si tu fais des scripts, je te conseille d'apprendre les rudiments du Terminal, parce que c'est souvent bien utile. Je pense qu'il y a pas mal de sites qui expliquent les bases. Il faut au moins savoir se promener dans l'arborescence de fichiers, créer/copier/consulter des fichiers/répertoires, et savoir changer les droits. 

Au fait je viens de penser à un truc. Toujours dans l'hypothèse où ton script "final" est un fichier texte, alors il te suffit certainement de cliquer dessus avec le bouton droit, et de l'ouvrir avec ton éditeur de script préféré (TextEdit par exemple). S'il n'est pas dans la liste, tu peux le rechercher.


----------



## johny12 (14 Juillet 2008)

J'effectue donc l'opération et la:" sh: line 1: final.txt: Permission denied"
J'ai fais faux ou ?

et quand je change manuellement ( information, je remplace la .app par un .txt) et que je l'ouvre, je vois un très beau:
&#731;Ì&#729;&#338;ï8__PAGEZERO__TEXT  __text__TEXT(xxÄ__cstring__TEXT-êúê__picsymbol_stub__TEXT.,&#8216;,Ä$å__DATA0 __data__DATA0  __la_symbol_ptr__DATA0 4  
__nl_symbol_ptr__DATA0T T__dyld__DATA0d d__common__DATA0Ä<8__LINKEDIT@&#8216;0&#8216;/usr/lib/dyldd<&#710;*¨/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices4<&#305;®L;/usr/lib/libSystem.B.dylibh`/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices¿ü0/usr/lib/libSystem.B.dylib	#"$Äç	@d®A&#728; °\Ä$ÄÇAÑ&#8747;<&#729;&#339;Ä&#8804;¥Y&#731;&#711;&#711;&#711;&#711;&#711;Ñ8&#63743;&#711;&#733;&#731;&#711;&#711;&#711;&#711;&#63743;Ü¿¯&#8747;&#63743;2fÏ¿Ê2&#8212;M< HD</usr/lib/system/libmathCommon.A.dylibê!à/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore&#730;&#711;&#711;&#711;ld/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation&#730;&#8734;&#729;à/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServicesêà/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CFNetwork.framework/Versions/A/CFNetworkúî/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/WebServicesCore.framework/Versions/A/WebServicesCorep.h/System/Library/Frameworks/DirectoryService.framework/Versions/A/DirectoryServiceX!P/System/Library/Frameworks/IOKit.framework/Versions/A/IOKitx&#402;X/System/Library/Frameworks/Security.framework/Versions/A/Securityt3l/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration80/usr/lib/libz.1.1.3.dylib0h#2»P2P0
2&#8734;((x|:x8!&#711;¸T!48êî!&#711;¿Äz8ö;cW{:|§&#8260;H	&#8225;|¶øÅ&#711;&#63743;êî!&#711;&#8224;BüË¶||x|û#x|&#937;+xH&#960;=?ìâ@=?ì&#8230;D=?ì©H=?Å)úÅ),	AÇ},Kx}(¶NÄ!=?Å)òÅ),	AÇ},Kx}(¶NÄ!HI=?Å)TÄ	,AÇ},Kx}(¶NÄ!HÌ=?Å)PÄ	,AÇ},Kx}(¶NÄ!<8c&#8216;8Å@H]Äa@,AÇH¡8=?Å)îê	Å~}i[x,AÇX99@à,AÇ(|	PÆ,/@¢}
J9JÅ>|	PÆ,@Ç&#711;&#8225;,AÇ8HÄ=?ê	L¶ÎxÄ,AÇÑ,@Ç&#711;¯É&#8222;x&#402;Ûx&#8226;Îx8&#8710;HH&#305;|¶ì·&#711;¸êî!&#711;&#8224;BüË¶<8c\8Å@H}Ä@|x|¶NÄ!Äh8!`|¶É·&#711;¸NÄ =`Åk0d,ãAÜNÄ 8&#8224;N8Ä`Ñ-&#8249;8`8D8`;8D&#8225;=ÄÄ0d|	¶=ÄaåNÄ =`Åk0h}i¶NÄ |¶ø°&#711;Ùêî!&#711;&#8224;|>xê~xêû|8`8Ä(HÖ|`xê@Å>@Äxê	Å>@Ä|ê	Å>@8(ê	Éæ@8`-H)ê}8`-Äû@H&#305;Ä!Ä|¶ª°&#711;ÙNÄ |¶ø¡&#711;¯êî!&#711;&#8224;|>xê~xêû|8êH8`-H&#376;ê~@8@êDÅ>DÄ	,@ÇHxÅ>DÅ)Å)Äx|	@ÇLÅ>DÅ)Å)Ä||	@Ç4Å>DÄ	êHÅ~DÅ>HÄ	êÅ>HÄ	,(AÇHÅ>DÅ)8	êDK&#711;&#711;|8`-Äû@HÄH,AÇ4Å>HÄ	,AÇÅ>HÄ	Ä~H|x|¶NÄ!Ä~HHëÄ!Ä|¶ª¡&#711;¯NÄ |¶ø¡&#711;¯êî!&#711;&#8224;|>xBüË¶H9=?Å)ºÄ	ê@Ä@,AÇÅ>@&#8224;	T>(@ÅH=?ÄixH&#8217;=?ÄitH&#8226;Ä!Ä|¶ª¡&#711;¯NÄ |¶9 ê8î!&#711;&#8224;êaD8a@&#8734;Bô!Aô!@H©Äh8!`|¶NÄ <`ap<Äsc|¶`Ñptê`cltî!&#711;&#8734;HU,8AÇK&#711;&#711;ô8|xÄX8!P|¶NÄ __dyld_mod_term_funcs__dyld_make_delayed_module_initializer_callsThe kernel support for the dynamic linker is not present to run this program.
|¶Bü}h¶=k|¶ÅãÏ}â¶9kÏNÄ |¶Bü}h¶=k|¶ÅãÃ}â¶9kÃNÄ |¶Bü}h¶=k|¶Åã¨}â¶9k¨NÄ |¶Bü}h¶=k|¶Åãå}â¶9kåNÄ |¶Bü}h¶=k|¶Åãl}â¶9klNÄ |¶Bü}h¶=k|¶ÅãL}â¶9kLNÄ |¶Bü}h¶=k|¶Åã,}â¶9k,NÄ |¶Bü}h¶=k|¶Åã}â¶9kNÄ |¶Bü}h¶=k|¶ÅãÏ}â¶9kÏNÄ |¶Bü}h¶=k|¶ÅãÃ}â¶9kÃNÄ |¶Bü}h¶=k|¶Åã¨}â¶9k¨NÄ |¶Bü}h¶=k|¶Åãå}â¶9kåNÄ |¶Bü}h¶=k|¶Åãl}â¶9klNÄ -ê0Ñ,å+p*ÏêI êó&#8225;êÅ&#8225;êó`êÇ@êã&#8224;ê+Äê(êï&#8224;êã`êÖ`ê&låê$z&#402;&#8224;&#8211;¿&#8224;\&#8224;ò&#8224;|*&#402;©0(*&#402;©0$*&#402;©0 *&#402;©0H*&#402;©0D*&#402;©0@*&#402;©0<*&#402;©08*&#402;©04*&#402;©00*&#402;©0,*&#402;©0P*&#402;©0L*&#402;000 40àK0åh0êé0î°0òª0ú÷0&#8224;Û0§
0®.0¨P0&#8734;t0¥ï0û0&#8719;Ø
ê$z&#402;&#8710;
ê&lå&#8249;
êÅ&#8225;&#711;
&#8224;|
&#8224;\'
êÇ@J
êó`p
êã&#8224;~
êã`§
êï&#8224;Ã
ê(&#8221;
êó&#8225;&#8364;
êÖ`&#8222;
&#8224;&#8211;¿Í
êI &#63743;
ê+Ä&#710;
&#8224;ò`&#8805;låéòôùQmëJ&#8706; ! !"_NXArgc_NXArgv___progname__mh_execute_header_catch_exception_raise_catch_exception_raise_state_catch_exception_raise_state_identity_clock_alarm_reply_do_mach_notify_dead_name_do_mach_notify_no_senders_do_mach_notify_port_deleted_do_mach_notify_send_once_do_seqnos_mach_notify_dead_name_do_seqnos_mach_notify_no_senders_do_seqnos_mach_notify_port_deleted_do_seqnos_mach_notify_send_once_environ_receive_samples_CallComponentDispatch_OpenDefaultComponent___keymgr_dwarf2_register_sections___keymgr_global__cthread_init_routine__dyld_register_func_for_add_image__dyld_register_func_for_remove_image__init_keymgr__keymgr_get_and_lock_processwide_ptr__keymgr_set_and_unlock_processwide_ptr_abort_atexit_calloc_errno_exit_free_mach_init_routine

ps: dsl pour la déformation


----------



## grumff (14 Juillet 2008)

J'imagine que tu parlais d'un AppleScript compilé, mais comme tu ne l'as pas précisé, ça tombe pas sous le sens, quand on parle de script sans préciser, on est nombreux à comprendre script shell, donc un bête fichier texte, qu'il soit exécutable ou non.


----------



## Dr_cube (14 Juillet 2008)

Ouais en effet il soit s'agir d'un AppleScript, et comme je ne connais pas, je n'ai pas la réponse. Désolé de t'avoir induit en erreur, je pensais que tu parlais d'un script shell.


----------



## johny12 (14 Juillet 2008)

Arf, désolé j'avais pas pensé a préciser ^^ 

Bon, si quelqu'un a une idée, je suis prenneur


----------



## ceslinstinct (14 Juillet 2008)

johny12 a dit:


> Arf, désolé j'avais pas pensé a préciser ^^
> 
> Bon, si quelqu'un a une idée, je suis prenneur


Bonsoir

Un AppleScript compilé en Exécutable uniquement peut être exécuté mais le code source ne peut être lue.

Quand tu écrit un script toujours garder le code source en mode texte pour les modifications si nécessaire avec le fauve suivant en archive (DD externe).

Si tu compile en faisant qu'une seule version, un problème de DD et tu perd ton script.

La seule solution que je voie, c'est de le réécrire.

Quand tu écrit un AppleScript, avant de le tester tu fait une sauvegarde car si obligé d'utiliser Forcer à quitter pour reprendre la main tu auras toujours le code.

Bon courage.

@+


----------



## johny12 (14 Juillet 2008)

arf, bon alors je le referais ... amis en mieux cette fois ^^


----------



## pascalformac (15 Juillet 2008)

Autre conseil complémentaire

garder le master en .app  SANS cocher executable
ca restera copiable et surtout editable directement dans Editeur !

(conseil qui est dans l'aide Applescript)




> - Exécutable uniquement : enregistre l'application sous un format non modifiable.
> 
> IMPORTANT Si vous choisissez "Exécutable uniquement", vous ne pourrez plus modifier ce script par la suite.
> ..../.........
> * ASTUCE : pour pouvoir modifier ultérieurement ce script,* veillez à enregistrer la version exécutable uniquement comme copie et* conservez l'original sous un format modifiable*.


----------

