j'étais habitué à tcsh
parce que c'était le shell par défaut sous mac os x 10.1 et 10.2
je souhaite changer, parce que
- on m'a suffisamment dit que c'est un très mauvais shell (pour les
scripts, mais aussi en interactif, d'après ce que j'ai compris) pour que
je me décide
- depuis mac os x 10.3, ça m'oblige à aller dans le netinfo manager pour
changer le shell par défaut à chaque (ré)install (j'ai horreur de ça)
certains m'ont conseillé de passer à zsh,
mais je préférerais m'habituer à bash (puisque pour l'instant je ne
connais aucun des 2), sinon je serais tjr obligé de changer le shell par
défaut à chaque fois
tant pis si il y a des choses pour lesquelles il est moins confortable
pouvez vous m'aider un peu pour la transition, svp ? :-)
j'avais un fichier .tcshrc
j'ai essayé .bashrc --> rien
j'ai lu que l'équivalent est .profile
c'est bien ça ?
j'ai traduit
setenv PATH ~/bin:$PATH
en
PATH=~/bin:$PATH
c'est bon ?
ça a l'air, mais c'est bizarre, j'ai entendu dire qu'il fallait utiliser
la commande "export" à un moment donné (non ?)
dans .tcshrc, il y avait une ligne :
source /usr/share/tcsh/examples/rc
je crois que c'était pour améliorer le confort en mode interactif
est ce qu'il y a un équivalent ?
il y avait plein d'alias, et il y en a un que j'aimerais refaire sous
bash
mais
alias l 'ls -l'
ne marche pas
comment faut il l'écrire ?
pour l'autocompletion, tant pis pour les + de zsh, mais
est ce que bash sait simplement afficher la liste des possibilités,
comme le fait tcsh ?
(pour l'instant il veut bien compléter quand il y a juste une
possibilité, mais des qu'il y en a 2 il ne fait plus rien)
--
j'agis contre l'assistanat, je travaille dans une SCOP !
1 argument: Exit true (0) if $1 is not null; otherwise, exit false.
C'est vrai pour POSIX mais pas pour le /bin/sh de Solaris ;) c'est moins explicite.
-- Stéphane
Stephane Chazelas
2007-09-10, 23:34(+00), Vincent Lefevre: [...]
case $- in *i*) mode interactif ;; *) mode batch if [[ -t 0 ]]; then lance par cron ou dans un pipe en entree elif [[ -t 1 ]]; then dans un pipe en sortie fi ;; esac
est plus fiable qq soit le shell utilise.
Ça doit fonctionner avec bash, mais pas quelque soit le shell utilisé: ça ne semble pas être POSIX et n'est pas compatible avec le /bin/sh de Solaris: [...]
Dans ~/.bash_profile, l'argument portabilité ne concerne que la portabilité vers les differentes versions de bash.
$- est POSIX, le "i" dedans je pense aussi (voir http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Ce qui est sur, c'est que [[ ... ]] n'est pas POSIX.
-- Stéphane
2007-09-10, 23:34(+00), Vincent Lefevre:
[...]
case $- in
*i*)
mode interactif ;;
*)
mode batch
if [[ -t 0 ]]; then
lance par cron ou dans un pipe en entree
elif [[ -t 1 ]]; then
dans un pipe en sortie
fi
;;
esac
est plus fiable qq soit le shell utilise.
Ça doit fonctionner avec bash, mais pas quelque soit le shell utilisé:
ça ne semble pas être POSIX et n'est pas compatible avec le /bin/sh de
Solaris:
[...]
Dans ~/.bash_profile, l'argument portabilité ne concerne que la
portabilité vers les differentes versions de bash.
$- est POSIX, le "i" dedans je pense aussi (voir
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Ce qui est sur, c'est que [[ ... ]] n'est pas POSIX.
case $- in *i*) mode interactif ;; *) mode batch if [[ -t 0 ]]; then lance par cron ou dans un pipe en entree elif [[ -t 1 ]]; then dans un pipe en sortie fi ;; esac
est plus fiable qq soit le shell utilise.
Ça doit fonctionner avec bash, mais pas quelque soit le shell utilisé: ça ne semble pas être POSIX et n'est pas compatible avec le /bin/sh de Solaris: [...]
Dans ~/.bash_profile, l'argument portabilité ne concerne que la portabilité vers les differentes versions de bash.
$- est POSIX, le "i" dedans je pense aussi (voir http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Ce qui est sur, c'est que [[ ... ]] n'est pas POSIX.
-- Stéphane
Nicolas George
Stephane Chazelas wrote in message :
$- est POSIX, le "i" dedans je pense aussi (voir http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Non, le i ne l'est pas. Dans ton lien, suis « Special Parameters », puis « set ».
Stephane Chazelas wrote in message
<slrnfecfi6.57p.stephane.chazelas@spam.is.invalid>:
$- est POSIX, le "i" dedans je pense aussi (voir
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Non, le i ne l'est pas. Dans ton lien, suis « Special Parameters », puis
« set ».
$- est POSIX, le "i" dedans je pense aussi (voir http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Non, le i ne l'est pas. Dans ton lien, suis « Special Parameters », puis « set ».
Stephane Chazelas
2007-09-11, 07:33(+00), Nicolas George:
Stephane Chazelas wrote in message :
$- est POSIX, le "i" dedans je pense aussi (voir http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Non, le i ne l'est pas. Dans ton lien, suis « Special Parameters », puis « set ».
Mais $- contient les options et -i est l'option pour avoir un shell interactif. Elle n'est pas settable par set, mais l'est par le shell, d'ou mon lien vers la page de sh qui documente -i.
- (Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the set ^^^^^^^^^^^^^ special built-in command, or implicitly by the ^^^^^^^^^^^^^^^^^^^^ shell. ^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Il n'y a pas un seul shell POSIX a ma connaissance (meme posh) qui ne supporte pas ce "i".
-- Stéphane
2007-09-11, 07:33(+00), Nicolas George:
Stephane Chazelas wrote in message
<slrnfecfi6.57p.stephane.chazelas@spam.is.invalid>:
$- est POSIX, le "i" dedans je pense aussi (voir
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Non, le i ne l'est pas. Dans ton lien, suis « Special Parameters », puis
« set ».
Mais $- contient les options et -i est l'option pour avoir un
shell interactif. Elle n'est pas settable par set, mais l'est
par le shell, d'ou mon lien vers la page de sh qui documente -i.
-
(Hyphen.) Expands to the current option flags (the
single-letter option names concatenated into a
string) as specified on invocation, by the set
^^^^^^^^^^^^^
special built-in command, or implicitly by the
^^^^^^^^^^^^^^^^^^^^
shell.
^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Il n'y a pas un seul shell POSIX a ma connaissance (meme posh)
qui ne supporte pas ce "i".
$- est POSIX, le "i" dedans je pense aussi (voir http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html)
Non, le i ne l'est pas. Dans ton lien, suis « Special Parameters », puis « set ».
Mais $- contient les options et -i est l'option pour avoir un shell interactif. Elle n'est pas settable par set, mais l'est par le shell, d'ou mon lien vers la page de sh qui documente -i.
- (Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the set ^^^^^^^^^^^^^ special built-in command, or implicitly by the ^^^^^^^^^^^^^^^^^^^^ shell. ^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Il n'y a pas un seul shell POSIX a ma connaissance (meme posh) qui ne supporte pas ce "i".
-- Stéphane
Nicolas George
Stephane Chazelas wrote in message :
Elle n'est pas settable par set, mais l'est par le shell
Ah oui, bien vu. Au temps pour moi.
Stephane Chazelas wrote in message
<slrnfechji.5li.stephane.chazelas@spam.is.invalid>:
Elle n'est pas settable par set, mais l'est
par le shell
Elle n'est pas settable par set, mais l'est par le shell
Ah oui, bien vu. Au temps pour moi.
Vincent Lefevre
Dans l'article , Stephane Chazelas écrit:
Mais $- contient les options et -i est l'option pour avoir un shell interactif. Elle n'est pas settable par set, mais l'est par le shell, d'ou mon lien vers la page de sh qui documente -i.
- (Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the set ^^^^^^^^^^^^^ special built-in command, or implicitly by the ^^^^^^^^^^^^^^^^^^^^ shell. ^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Mais je pense qu'on peut très bien avoir un shell interactif *sans option -i*. En effet, http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html dit également:
If the -i option is present, or if there are no operands and the shell's standard input and standard error are attached to a terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX ajoutent l'option -i implicitement si le shell est interactif, mais cela ne me semble pas obligatoire.
Dans l'article <slrnfechji.5li.stephane.chazelas@spam.is.invalid>,
Stephane Chazelas <cette.adresse@est.invalid> écrit:
Mais $- contient les options et -i est l'option pour avoir un
shell interactif. Elle n'est pas settable par set, mais l'est
par le shell, d'ou mon lien vers la page de sh qui documente -i.
-
(Hyphen.) Expands to the current option flags (the
single-letter option names concatenated into a
string) as specified on invocation, by the set
^^^^^^^^^^^^^
special built-in command, or implicitly by the
^^^^^^^^^^^^^^^^^^^^
shell.
^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Mais je pense qu'on peut très bien avoir un shell interactif
*sans option -i*. En effet,
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html
dit également:
If the -i option is present, or if there are no operands and the
shell's standard input and standard error are attached to a
terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX
ajoutent l'option -i implicitement si le shell est interactif, mais
cela ne me semble pas obligatoire.
Mais $- contient les options et -i est l'option pour avoir un shell interactif. Elle n'est pas settable par set, mais l'est par le shell, d'ou mon lien vers la page de sh qui documente -i.
- (Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the set ^^^^^^^^^^^^^ special built-in command, or implicitly by the ^^^^^^^^^^^^^^^^^^^^ shell. ^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Mais je pense qu'on peut très bien avoir un shell interactif *sans option -i*. En effet, http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html dit également:
If the -i option is present, or if there are no operands and the shell's standard input and standard error are attached to a terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX ajoutent l'option -i implicitement si le shell est interactif, mais cela ne me semble pas obligatoire.
On ne devrait pas avoir de message d'erreur, car POSIX dit dans le cas à 4 arguments: "If $1 is '(' and $4 is ')', perform the two-argument test of $2 and $3." et dans le cas à 2 arguments: "If $1 is '!', exit true if $2 is null, false if $2 is not null." donc c'est parfaitement valide.
On ne devrait pas avoir de message d'erreur, car POSIX dit dans
le cas à 4 arguments: "If $1 is '(' and $4 is ')', perform the
two-argument test of $2 and $3." et dans le cas à 2 arguments:
"If $1 is '!', exit true if $2 is null, false if $2 is not null."
donc c'est parfaitement valide.
On ne devrait pas avoir de message d'erreur, car POSIX dit dans le cas à 4 arguments: "If $1 is '(' and $4 is ')', perform the two-argument test of $2 and $3." et dans le cas à 2 arguments: "If $1 is '!', exit true if $2 is null, false if $2 is not null." donc c'est parfaitement valide.
(Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the set ^^^^^^^^^^^^^ special built-in command, or implicitly by the ^^^^^^^^^^^^^^^^^^^^ shell. ^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Mais je pense qu'on peut très bien avoir un shell interactif *sans option -i*. En effet, http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html dit également:
If the -i option is present, or if there are no operands and the shell's standard input and standard error are attached to a terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX ajoutent l'option -i implicitement si le shell est interactif, mais cela ne me semble pas obligatoire. [...]
Si, ca n'a pas de raison d'etre different des autres options. Pour les shells interactifs par defaut, ca veut dire que l'option i est on par defaut, c'est couvert par le "or implicitly by the shell" et c'est pareil par exemple pour l'option m (monitor).
-- Stéphane
2007-09-11, 08:02(+00), Vincent Lefevre:
[...]
(Hyphen.) Expands to the current option flags (the
single-letter option names concatenated into a
string) as specified on invocation, by the set
^^^^^^^^^^^^^
special built-in command, or implicitly by the
^^^^^^^^^^^^^^^^^^^^
shell.
^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Mais je pense qu'on peut très bien avoir un shell interactif
*sans option -i*. En effet,
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html
dit également:
If the -i option is present, or if there are no operands and the
shell's standard input and standard error are attached to a
terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX
ajoutent l'option -i implicitement si le shell est interactif, mais
cela ne me semble pas obligatoire.
[...]
Si, ca n'a pas de raison d'etre different des autres options.
Pour les shells interactifs par defaut, ca veut dire que
l'option i est on par defaut, c'est couvert par le "or
implicitly by the shell" et c'est pareil par exemple pour
l'option m (monitor).
(Hyphen.) Expands to the current option flags (the single-letter option names concatenated into a string) as specified on invocation, by the set ^^^^^^^^^^^^^ special built-in command, or implicitly by the ^^^^^^^^^^^^^^^^^^^^ shell. ^^^^^
Je ne pense pas qu'il y ait de doute a avoir.
Mais je pense qu'on peut très bien avoir un shell interactif *sans option -i*. En effet, http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html dit également:
If the -i option is present, or if there are no operands and the shell's standard input and standard error are attached to a terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX ajoutent l'option -i implicitement si le shell est interactif, mais cela ne me semble pas obligatoire. [...]
Si, ca n'a pas de raison d'etre different des autres options. Pour les shells interactifs par defaut, ca veut dire que l'option i est on par defaut, c'est couvert par le "or implicitly by the shell" et c'est pareil par exemple pour l'option m (monitor).
-- Stéphane
Vincent Lefevre
Dans l'article , Stephane Chazelas écrit:
2007-09-11, 08:02(+00), Vincent Lefevre: [...]
Mais je pense qu'on peut très bien avoir un shell interactif *sans option -i*. En effet, http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html dit également:
If the -i option is present, or if there are no operands and the shell's standard input and standard error are attached to a terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX ajoutent l'option -i implicitement si le shell est interactif, mais cela ne me semble pas obligatoire. [...]
Si, ca n'a pas de raison d'etre different des autres options. Pour les shells interactifs par defaut, ca veut dire que l'option i est on par defaut, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
C'est sur ce point que je ne suis pas d'accord. Quand on dit "if", c'est une implication, pas une équivalence (il peut y avoir équivalence, mais ce n'est pas obligatoire). Maintenant, c'est probablement mal dit.
Dans l'article <slrnfecn4p.6ij.stephane.chazelas@spam.is.invalid>,
Stephane Chazelas <cette.adresse@est.invalid> écrit:
2007-09-11, 08:02(+00), Vincent Lefevre:
[...]
Mais je pense qu'on peut très bien avoir un shell interactif
*sans option -i*. En effet,
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html
dit également:
If the -i option is present, or if there are no operands and the
shell's standard input and standard error are attached to a
terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX
ajoutent l'option -i implicitement si le shell est interactif, mais
cela ne me semble pas obligatoire.
[...]
Si, ca n'a pas de raison d'etre different des autres options.
Pour les shells interactifs par defaut, ca veut dire que
l'option i est on par defaut,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
C'est sur ce point que je ne suis pas d'accord. Quand on dit
"if", c'est une implication, pas une équivalence (il peut y avoir
équivalence, mais ce n'est pas obligatoire). Maintenant, c'est
probablement mal dit.
Mais je pense qu'on peut très bien avoir un shell interactif *sans option -i*. En effet, http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html dit également:
If the -i option is present, or if there are no operands and the shell's standard input and standard error are attached to a terminal, the shell is considered to be interactive.
Cf le "or if ... terminal". Je pense que la plupart des shells POSIX ajoutent l'option -i implicitement si le shell est interactif, mais cela ne me semble pas obligatoire. [...]
Si, ca n'a pas de raison d'etre different des autres options. Pour les shells interactifs par defaut, ca veut dire que l'option i est on par defaut, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
C'est sur ce point que je ne suis pas d'accord. Quand on dit "if", c'est une implication, pas une équivalence (il peut y avoir équivalence, mais ce n'est pas obligatoire). Maintenant, c'est probablement mal dit.