Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[CLI] j'aurais dû faire attention

10 réponses
Avatar
laurens
Il y a quelques jours est passée la question de tester l'existence d'un
fichier ou dossier dans un script. J'avais lu rapidement sans penser que
j'en aurais besoin aujourd'hui...

J'ai bien essayé de faire quelque chose en utilisant test mais je n'y
parviens pas.

Au fait, il me faut du /bin/sh

10 réponses

Avatar
Patrick Stadelmann
In article <20030923114618648+,
laurens wrote:

J'ai bien essayé de faire quelque chose en utilisant test mais je n'y
parviens pas.


C'est pourtant bien "test" qu'il faut utiliser :

if test -e /Volumes ; then echo "Yes"; else echo "No"; fi

NB : test peut être remplacé par [] :

if [ -e /Volumes ] ; then echo "Yes"; else echo "No"; fi

Voir "man test" pour la signification des paramètres (-e, -f, -d ...)

Patrick
--
Patrick Stadelmann

Avatar
laurens
In Patrick
Stadelmann wrote:
In article <20030923114618648+,
laurens wrote:

J'ai bien essayé de faire quelque chose en utilisant test mais je n'y
parviens pas.


C'est pourtant bien "test" qu'il faut utiliser :

if test -e /Volumes ; then echo "Yes"; else echo "No"; fi

NB : test peut être remplacé par [] :

if [ -e /Volumes ] ; then echo "Yes"; else echo "No"; fi

Voir "man test" pour la signification des paramètres (-e, -f, -d ...)

Patrick


évidemment, ç'est les seul que j'avais pas essayé...

mais ce n'est pas fini!!!

il est dit dans le man que test retourne 0, 1 ou autre, mais je ne
comprends pas comment: si je fais test -e NIMPORTEQUOI dans le terminal,
la réponse est invariablement .... rien du tout même dans $status. Quel
est le mécanisme pour récupérer ce 0, 1 ou autre?

Merci d'avance


Avatar
Éric Lévénez
Le 23/09/03 12:15, dans <20030923121325695+,
« laurens » a écrit :

il est dit dans le man que test retourne 0, 1 ou autre, mais je ne
comprends pas comment: si je fais test -e NIMPORTEQUOI dans le terminal,
la réponse est invariablement .... rien du tout même dans $status. Quel
est le mécanisme pour récupérer ce 0, 1 ou autre?


$status ? Mais ça vient d'où ça ? Je n'ai jamais vu un shell utiliser ce
nom.

C'est $? qu'il faut utiliser.

--
Éric Lévénez -- <http://www.levenez.com>
Unix is not only an OS, it's a way of life.

Avatar
Patrick Stadelmann
In article <BB95F170.55C2F%,
Éric Lévénez wrote:

$status ? Mais ça vient d'où ça ? Je n'ai jamais vu un shell utiliser ce
nom.


$status, c'est du csh.

Patrick
--
Patrick Stadelmann

Avatar
Éric Lévénez
Le 23/09/03 13:47, dans
, « Patrick
Stadelmann » a écrit :

In article <BB95F170.55C2F%,
Éric Lévénez wrote:

$status ? Mais ça vient d'où ça ? Je n'ai jamais vu un shell utiliser ce
nom.


$status, c'est du csh.


Je n'ai jamais utilisé csh :-) Et bientôt avec Mac OS X 10.3 ce sera bash
pour tout le monde. Enfin débarrassé de ce csh !

--
Éric Lévénez -- <http://www.levenez.com>
Unix is not only an OS, it's a way of life.


Avatar
Patrick Stadelmann
In article <BB964629.55CB9%,
Éric Lévénez wrote:

Et bientôt avec Mac OS X 10.3 ce sera bash
pour tout le monde.


Non... Seul le shell par défaut change, on pourra toujours utiliser
celui que l'on préfère.

Patrick
--
Patrick Stadelmann

Avatar
Éric Lévénez
Le 23/09/03 19:37, dans
, « Patrick
Stadelmann » a écrit :

In article <BB964629.55CB9%,
Éric Lévénez wrote:

Et bientôt avec Mac OS X 10.3 ce sera bash
pour tout le monde.


Non... Seul le shell par défaut change, on pourra toujours utiliser
celui que l'on préfère.


Oui, car les macounets qui ne connaissent pas les commandes de base du shell
utilisent celui par défaut, ils utiliseront donc bash à la place de [t]csh.
Un macounet averti et qui sait changer son shell ne choisira jamais csh ou
tcsh, mais plutôt zsh. :-p

--
Éric Lévénez -- <http://www.levenez.com>
Unix is not only an OS, it's a way of life.


Avatar
nospam
Patrick Stadelmann wrote:

$status ? Mais ça vient d'où ça ? Je n'ai jamais vu un shell utiliser ce
nom.


$status, c'est du csh.


Dehors le csh...

Si on fait un script shell, c'est de toute façons du sh.
Et si c'est pour l'interactif (attention troll) c'est du zsh.

--
Jacques


Avatar
dpi
Éric Lévénez wrote:

Le 23/09/03 19:37, dans
, « Patrick

In article <BB964629.55CB9%,
Éric Lévénez wrote:

Et bientôt avec Mac OS X 10.3 ce sera bash
pour tout le monde.


Non... Seul le shell par défaut change, on pourra toujours utiliser
celui que l'on préfère.


Oui, car les macounets qui ne connaissent pas les commandes de base du shell
utilisent celui par défaut, ils utiliseront donc bash à la place de [t]csh.
Un macounet averti et qui sait changer son shell ne choisira jamais csh ou
tcsh, mais plutôt zsh. :-p


moi ca m'interresserai vivement qu'on (que 'tu', j'aime tes résumés
histoiriques et documentés en fait) m'explique les tenants et
aboutissants dans la vie de tous les jours, des choix de shell entre
bash et xsh (même si pour faire plus simple on limitera la plage de x
entre tc et z, puisque l'utilisation de sh pour les scripts d'install
n'est pas ce que j'apelle la vie de tous les jours).

Ce qui serait le mieux c'est un truc à base de tas de scriplets pour des
opérations utiles en CLI, comme du renaming, des opérations appliquées à
un match regex sur des noms de fichiers, de la copie de backup, du
mouvement de hiérarchie avec les droits etc..

J'ai lu en long en large et en travers les bouqins d'Oreilly (qui
datent?) la dessus, mais ce qui ressort souvent ce sont des querelles
d'oppinions et rien de tranché (du genre tel shell est dangereux, pour
telle raison etc..).

Pak'en dernier ressort comme je suis plus a l'aise en perl, pytho, java
ou autre ruby je me retouve à lancer un éditeur ou sous la console de
beanshell pour programmer un truc n fois refait, alors qu'un bout de
shell résoudrais le problème, par simple méconnaissance dans le choix
d'une des nombreuses options des commandes qu'on nous rabache en
permanence dans les pseudos manuels, sans entrer dans les détails qui
comptent.



Avatar
dpi
Jacques Foucry wrote:

Patrick Stadelmann wrote:

$status ? Mais ça vient d'où ça ? Je n'ai jamais vu un shell utiliser ce
nom.


$status, c'est du csh.


Dehors le csh...

Si on fait un script shell, c'est de toute façons du sh.
Et si c'est pour l'interactif (attention troll) c'est du zsh.


CQFD