Faire un script nommé !

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

Faire un script nommé !

Messagepar gorgor999 » 23 Août 2006 16:16

Bonjour à tous c'est mon premier post sur ce forum !

Je suis sur une distrib SME 6 (mais je pense que le problème est le même quelque soit la distribution) et je voudrais faire un script nommé " ! " qui fasse l'équivalent de " cd .. "

Ce que je veux exactement c'est que lorsqu'au prompt je tape " ! ", ca me ramène au niveau supérieur dans l'arborescence.

Pour l'instant ce que j'ai, c'est un fichier nommé " ! " :

Code: Tout sélectionner
#!/bin/sh

cd ..


le problème au prompt:

Code: Tout sélectionner
# !
bash: syntax error near unexpected token `!'



Est-ce possible? "!" est-il réservé? N'y a-t-il pas moyen de faire ce que je veux sous linux :lol: ?

je sais que sous windaube ca marchait avec un petit fichier batch.

On peut discuter de l'intérêt mais mon problème est la !

Une idée?
gorgor999
Matelot
Matelot
 
Messages: 2
Inscrit le: 23 Août 2006 15:59

Messagepar fraedhrim » 23 Août 2006 16:42

Bonjour,

C'est effectivement plutôt d'une aide Linux dont tu as besoin mais bon...

"!" est effectivement un mot réservé qui sert aux instructions liées à l'historique des commandes shell.
Je ne crois pas que tu puisses le surclasser. Mais si tu peux le faire une voie à suivre est à mon avis la commande "alias" qui permet de faire des choses genre "ll" fait un "ls -l" ou peut-être dans ton cas "!" qui ferait "cd ..".

A+

[edit]
Ah si tiens ça marche ...
Code: Tout sélectionner
[root@emeldiz root]# alias !='cd ..'
[root@emeldiz root]# !
[root@emeldiz /]#

Après il faut que tu colles le "alias !='cd ..'" en début de ton script ou carrément dans le profil pour que ça reste...
[/edit]

[edit 2]
:D Prems !!

(Mais moins didactique je le concède)
[/edit2]
Dernière édition par fraedhrim le 23 Août 2006 16:49, édité 3 fois au total.
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar jdh » 23 Août 2006 16:42

Il vaudrait mieux faire un "alias" : par exemple " alias ! = 'cd ..' " (éventuellement à ajouter à ~/.bashrc).

Mais je ne crois pas que ce choix de caractère soit très judicieux. Par exemple "up" serait peut-être mieux, même si le gain n'est que de 2 touches ! (up est peut-être pris)

De plus, dans le script que tu donnes, cela entre en conflit avec la notation "she-bang" assez connu dans bash. A savoir la première ligne d'un script bash est souvent " #! /bin/bash " tandis que pour un script awk on écrit " #! /usr/bin/awk -f ".

Cette notation permet, en rendant le fichier executable (chmod +x), d'indiquer au shell quel programme exact lancer. Cf une référence http://www.tldp.org voir le guide "Advanced Bash".

(Ceci est susceptible de fonctionner dans n'importe quelle distribution Linux et pas seulement SME.)
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

MErci !

Messagepar gorgor999 » 30 Août 2006 10:10

Merci pour ces éclaircissements, je file potasser tldp !
gorgor999
Matelot
Matelot
 
Messages: 2
Inscrit le: 23 Août 2006 15:59


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité