CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

La variable Path (UNIX)

JoKer_forever
JoKer_forever
Niveau 10
16 février 2004 à 22:06:05

Voilà, alors je suis en train de m´intéresser au terminal ( pas de commentaire, DasHuhn, mais je pense que tu pourras sûrement m´aider...).

Donc je voulais savoir si il était possible de modifier la variable Path ( c´est une variable donc...).
Ma question serait plutôt : comment la modifier ?

Si je ne fais pas d´erreur ( tu me corrigera. DasHuhn... ; oP ) , cette variable stocks les endroits où le système recherche les commande UNIX. Une commande UNIX, c´est un " simple exécutable", non ?

Alors serait il possible que je donne le nom d´un dossier dans le quel sont stoker des scripts ( AppleScript) et que le système les exécute comme des commandes normales ?

DasHuhn
DasHuhn
Niveau 10
17 février 2004 à 15:47:48

Mieux vaut tard que jamais ; -)

Quel shell ? Sous tcsh ( je sais pas pour les autres) on définit la variable PATH avec ´setenv´. Exemple commenté :

$ . /Helloworld
Bonjour, monde !
$ Helloworld
Helloworld : command not found
$ printenv PATH

/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/us
r/X11R6/bin
$ setenv PATH
/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/us
r/X11R6/bin:./
$ Helloworld
Bonjour, monde !
$

Là je rajoute juste le répertoire courant ( donc, où que je sois, le répertoire actuel sera dans PATH) dans la variable. N´oublie pas les " :".

Maintenant, pour les scripts AppleScript, il faut les utiliser avec ´osascript´, commande dont je ne sais rien. Voilà !

JoKer_forever
JoKer_forever
Niveau 10
17 février 2004 à 16:14:51

Je vais tester ça ce soir !

twimsk
twimsk
Niveau 10
17 février 2004 à 16:47:18

vous avez un niveau assez bluffant quand meme ; )

JoKer_forever
JoKer_forever
Niveau 10
17 février 2004 à 20:46:39

Alors... J´ai réussi a redéfinir path ! Merci DasHuhn !
Bon, je me suis quand même pas mal énervé parce que je n´écrivait pas PATH en majuscule...!
Au moins maintenant j´ai compris qu´avec UNIX il faut être précis ! ; o)

Mais j´ai encore une question. Mon idée avec les Script ne marche pas.
Alors je pensais faire un document ( comme une commande) qui ouvrirait un AppleScript.

Par exemple, j´ai un script ( mute) qui coup le volume de mon Mac. Pour le moment je dois aller dans le dossier commande et taper open mute.app. Es ce qu´il est possible de faire un script dans le shel qui me fasse le " open mute.app" et que j´appellerais " mute" ?

Je ne sais pas si j´ai été très clair !

Bidule200
Bidule200
Niveau 10
17 février 2004 à 21:34:04

Quand je pense que Steve s´est fait chier à faire depuis 1984 un OS convivial et accessible à tous, et qu´il y en a encore qui se font chier avec ça comme il y a 20 ans :rire:

remarque je vous en veux absolument pas les gars c´est pas contre vous :ok:

JoKer_forever
JoKer_forever
Niveau 10
17 février 2004 à 21:44:03

Peut-être, mais j´ai découvert une fonction intéressante de Mac OS X, c´est le SSH. Préférences Système -> Partage -> Session a distance.

Avec ça tu commande ton Mac depuis n´importe quel ordinateur connecté au réseau, mais pas la ligne de commende.
Alors vu que j´ai de la plein avec le shell, je veux faire des scripts qui seront le boulot !

DasHuhn
DasHuhn
Niveau 10
18 février 2004 à 14:15:25

Bidule200, Twimsk> Ouste, pas de profanes ici :)

Joker> Le shell a connu du succès pour sa programmabilité. Tu peux absolument tout faire. Si tu places tes scripts dans un répertoire, disons ~/ScriptsJoker/, tu peux faire un script sh qui les lancera :

  1. !/bin/sh

case $1 in
mute) open ~/ScriptsJoker/mute.app;;
cmd) open ~/ScriptsJoker/cmd.app;;

  • ) echo " Commande inconnue =(";;

esac

J´explique : la première ligne défini l´interpréteur. Quand on utilise des commandes aussi simple que dans ce cas là, pourquoi s´emmerder à charger un shell lourd ( sh est l´un des plus légers et des plus primitifs. On l´utilise pour la compatibilité)

Lors du lancement d´un script ou d´un programme ( ligne de commande ou pas) il y´a toujours des arguments. En shell, $0 est le nom du script, $1 le premier argument suivant le nom sur la ligne de commande, $2 le deuxième, etc...

´case $1 in´ signifie qu´on va comparer l´argument à différentes valeurs. Ici, on le compare à ´mute´ et ´cmd´. Syntaxe :

case < variable> in
< valeur 1> ) [commandes] ; ;
< valeur 2> ) [commandes];;
etc...
esac

N´oublie pas la parenthèse ou les deux point-virgules. Pour éviter les ennuis, rajoute un ´ *) ´ à la fin, car l´astérisque signifie ´tout´. Exemple, si un fichier s´appelle ´fichierexemple´, on peut le détruire par ´rm f*e´ ( en même temps que tout ce qui commence par un f et fini par un e).

Voili voilou. Rajoute les possibilités de ´case´ en fonction. Tu peux aussi tester :

  1. !/bin/sh

open $1.app

qui est plus court et moins instructif, et qui ne contient pas de contrôle d´erreur.

PS : SSH est un des classiques d´Unix. Il y´a d´autres programmes de contrôle, mais SSH crypte en plus les données. Plutôt que de lancer un programme à qui on donne au fur et à mesure les commandes, tu peux faire

$ programme < < EOF
? Commande 1
? Commande 2
. ..
? EOF
$

twimsk
twimsk
Niveau 10
18 février 2004 à 17:14:40

t´as oublié un point a la fin :-)

JoKer_forever
JoKer_forever
Niveau 10
18 février 2004 à 17:34:23

Attends, attends, attends... Commençant par le début ( je suis quand même un novice, moins d´une semaine d´UNIX) !

Où es ce que je tape le script ? Comment es ce que je le sauve ?

DasHuhn
DasHuhn
Niveau 10
18 février 2004 à 18:24:10

C´est un script de texte pur, à sauvegarder sous n´importe quel nom ( on te l´a jamais dit : Unix se fout du nom d´un fichier, du moment que tu respectes la casse). Ensuite, tu le rends executable ( ´chmod 755 $nomdufichier´ ) . Tu n´auras plus qu´à le lancer en tapant son nom si il est dans un des répertoires de PATH, ou en te positionnant dans son répertoire et en tapant
$ . /$nomdufichier

Tu sais quoi pour le moment ? Parce qu´avant de s´interesser aux variables d´environnement faudrait déjà savoir comment ça marche en gros...

JoKer_forever
JoKer_forever
Niveau 10
18 février 2004 à 20:45:35

Bon, ben j´y arrive pas. J´ai ouvert Textedit, j´ai écris ça :

  1. !/bin/sh

case $1 in
mute) open ~/Commandes/mute.app;;
cmd) open ~/Commandes/cmd.app;;

  • ) echo "  Commande inconnue :-(";;

esac

J´ai passer le fichier dans chmod et si je l´ouvre, il me dis :

tcsh: mute2: Undefined variable.

Et un truc encore. Chaque fois que je ferme le terminal, je perds la modification de path. Comment je fais pour la garder ?

Comme tu as pu le voir j´ai pas un haut niveau !

DasHuhn
DasHuhn
Niveau 10
18 février 2004 à 21:52:36

1) Tu l´as modifié et t´as fais une erreur de syntaxe
2) Tu l´as enregistré en autre chose que du . txt. Chez moi ça fonctionne.

Pour garder PATH... je sais pas, au lancement du shell sans doute. ´man bash´ ou ´man tcsh´ en fonction de ce que tu utilises, et tu cherches la liste des fichiers lancés au démarrage du shell.

DasHuhn
DasHuhn
Niveau 10
19 février 2004 à 12:00:02

Euh...

2) ( correction) Tu l´as enregistré dans un autre format que le texte simple. Essaye . sh

JoKer_forever
JoKer_forever
Niveau 10
22 février 2004 à 10:02:09

1) Voilà ce que j´ai écris :

  1. !/bin/sh

case $1 in
mute) open ~/Commandes/mute.app;;
cmd) open ~/Commandes/cmd.app;;

  • ) echo "  Commande inconnue =(";;

esac

Mais j´ai la vague impression que même avec une erreur de syntaxe j´aurais un autre message que :

tcsh: mute2.sh: Command not found.

Donc a mon avis c´est clair que l´erreur n´est pas dans la syntaxe.

2) Je l´ai enregistrer en txt ( faut pas me prendre pour un blaireau non plus j´ai pas faut in rtf ! ). Je peux bien mettre . sh, mais ça ne change rien.

J´ai bien modifier path, elle accède au dossier commandes.

Qu´es ce que j´ai oublier ?

Bidule200
Bidule200
Niveau 10
22 février 2004 à 11:17:26

Juste une question : ça à l´air vachement prise de tête vos trucs, mais ça va servir à quoi concrètement sur l´ordi ( je ne connais pas les commandes de programmation) ?

JoKer_forever
JoKer_forever
Niveau 10
22 février 2004 à 11:31:28

Comme je l´ai déjà dis, mon but est de contrôler mon Mac à distance par SSH ( Préférences Système -> Partage ->Session a distance). Avec ça tu te logue sur ton Mac depuis n´importe où sur Internet et tu commande ton Mac comme si tu étais sur le terminal.
Ce que je veux faire c´est attribuer des AppleScript à des nom de commande pour faire des trucs sur mon Mac quand je ne suis pas chez moi. Par exemple : couper le volume, démarrer le serveur ftp, éteindre l´ordinateur...
Il y a des tonnes de choses a faire !

Mais on dois passer par une étape qui est compliquée pour arrivé à quelque chose qui simplifiera tous en donnant des possibilité de contrôle en réseau.

DasHuhn
DasHuhn
Niveau 10
22 février 2004 à 16:05:23

( Là le PATH n´a rien à voir ^^)

Chez moi ça fonctionne, que ce soit sur MacOS X ( tcsh) ou Linux ( bash. Cela dit, ça reste interprété par sh). Je comprends même pas pourquoi y´a un " mute2" ou un " .sh" dans le message d´erreur.

Bidule200> C´est pas " prise de tête", en tout cas pas pour moi.

    • TILT**

Ton script s´appelle comment ? mute2.sh ? Tu l´as rendu executable ? Et surtout, tu l´appelles bien par " ./mute2.sh" ?

JoKer_forever
JoKer_forever
Niveau 10
22 février 2004 à 16:13:02

Il est exécutable, mais je ne tapais pas le bon truc. Maintenant j´ai :

? Commande inconnue =(

Bidule200
Bidule200
Niveau 10
22 février 2004 à 16:18:11

Ah oki. Mais pourquoi ne pas demander à Jobs d´intégrer ces fonctions dans une mise à jour ? En quelque sorte améliorer de + en + le système, car si vous savez le faire alors la machine sait le faire toute seule !

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware