Newsgroup: it.comp.os.linux.iniziare
Titolo: Strano errore in .xsession-error

Ho modificato il file xsession per il parsing dei vari .bash*, però
relevo questo strano errore:
--8<---------------cut here---------------start------------->8---
/home/daniele/.bash_profile: 7: [[: not found
/home/daniele/.bashrc: 58: [[: not found
--8<---------------cut here---------------end--------------->8---
Nello specifico:
--8<---------------cut here---------------start------------->8---
# This file is sourced by bash for login shells.  The following line
# runs your .bashrc and is recommended by the bash info pages.
[[ -f ~/.bashrc ]] && . ~/.bashrc
--8<---------------cut here---------------end--------------->8---
e 
--8<---------------cut here---------------start------------->8---
# Test for an interactive shell.  There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]] ; then
...
--8<---------------cut here---------------end--------------->8---
Suggerimenti?
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
         C'e' sempre qualche ragione per l'uccisione d'un uomo.
         E' invece impossibile giustificare che viva.
         		-- Camus, "La caduta"

 if [[ $- != *i* ]] ; then
Uhm... ce l'hai "[" installato? fai un
ls -l /usr/bin/[
E vedi se esiste.
Dovrebbe trovarsi nelle "coreutils", quindi dovresti averlo per forza.
I casi sono due: o hai cancellato /usr/bin/[, oppure non è accessibile,
cioè quando viene fatto il parsing di quei file /usr/bin *non* è nel PATH.
-- 
Massimo Bacilieri AKA Crononauta

 cioè quando viene fatto il parsing di quei file /usr/bin *non* è nel PATH.
Anche qui sembra tutto ok
,----[ echo $PATH ]
| /home/daniele/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
`----
è possibile che sia il problema sia nel programma che invoca ~/.xsession ?
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
        Poco dopo la cacciata dal Paradiso, Adamo:
        "Eva!  Possibile che tu voglia sempre fare l'originale?"
        		-- Achille Campanile


Facebook: Massimo Bacilieri

 path e allora ciao.
sì, però, che cazzo, l'eseguibile è in /usr/bin/ mica chissà dove.
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
                Notizie dai principali quotidiani:
                	Scontro fra 2 taxi a Genova: 20 feriti.

 /home/daniele/.bash_profile: 7: [[: not found
alessandro@botola ~ $ which [[
which: no [[ in
(/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/i686-pc-linux-gnu/gcc-bin/4.3.4:/usr/games/bin:/home/tecnico/bin)
alessandro@botola ~ $ type [[
[[ is a shell keyword
alessandro@botola ~ $ echo $BASH_VERSION
4.0.35(2)-release
  Tu cos'hai?
  Ciao,
-- 
Alessandro Selli 
http://alessandro.route-add.net
AVVERTENZA: i messaggi inviati a "trappola" non mi arriveranno.
WARNING: messages sent to "trappola" will never reach me.

 which: no [[ in
which [
non
which [[
Dunque, ho riguardato il man, ché era un problema che non mi ero mai
posto a fondo. Mi par di capire che la singola parentesi quadra utilizza
il programma esterno (eq. a test, appunto /usr/bin/[ ) per la
valutazione dell'espressione booleana; se metti le due parentesi quadre,
utilizzi invece la funzione interna alla shell.
Teoricamente dovrebbero essere equivalenti, in pratica pare di no. Ciò
che è seriamente strano, nel caso dell'OP, è che non funziona col
richiamo della funzione *interna*, che invece dovrebbe sempre essere
presente.
O forse no, a questo punto mi viene il sospetto che lo script venga
eseguito sì in una shell, ma non necessariamente in una shell di *bash*.
A questo punto si capisce perché [[ fallisce, se non sei in bash non va.
Dovrebbe allora andare con la singola parentesi, che invocando il
programma esterno si svincola dalle funzioni interne alla shell.


 sì, però, che cazzo, l'eseguibile è in /usr/bin/ mica chissà dove.
Prova a mettere solo una parentesi quadra anziché due.
Anche se, a dispetto di quel che ho scritto nell'altro messaggio, se
stai cercando di leggere bash_profile e bashrc dovrebbero ben essere
file letti da una shell di bash...


 which [[
,----[ echo $BASH_VERSION; type [ ; type [[
 ]
| 4.1.0(1)-release
| [ is a shell builtin
| [[ is a shell keyword
`----
,----[ man bash
|   [[ expression ]]
|          Return  a status of 0 or 1 depending on the evaluation of the conditional
|          expression  expression.   Expressions  are  composed  of  the   primaries
|          described  below under CONDITIONAL EXPRESSIONS.  Word splitting and path-
|          name expansion are not performed on the words  between  the  [[  and  ]];
|          tilde  expansion, parameter and variable expansion, arithmetic expansion,
|          command substitution, process substitution, and quote  removal  are  per-
|          formed.   Conditional  operators such as -f must be unquoted to be recog-
|          nized as primaries.
`----
in particolare: "Word splitting and pathname expansion are not
performed on the words between the [[ and ]"

 > /home/daniele/.bash_profile: 7: [[: not found


   Tu cos'hai?
,----
| 4.1.0(1)-release
`----
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
       Si muove come una parodia tra una majorette e Fred Astair.
       		-- Truman Capote, parlando di Mick Jagger

 file letti da una shell di bash...
Ho risolto in altro modo. Lasciando che fosse il sistema a generare un
.bashrc nuovo di zecca. Quello sul quale stavo lavorando me lo portavo
da chissà dove ed evidentemente era incompatibile con la Debian sulla
quale lo usavo.
-- 
                     Dona i tuoi cicli di clock alla ricerca!
 
http://boinc.berkeley.edu/
                          --------------------
Mi ha sempre stupito quali giri assurdi devono fare i fiumi per passare
sotto a tutti i ponti.
		-- Beppe Grillo