Newsgroup: it.comp.os.linux.iniziare
Titolo: piccolo file da eseguire

Uso l'ultimo Ubuntu, e spesso devo lavorare col terminale sempre nella
stessa directory, che chiamo digitando:
cd nomelungo/altronomelungo/terzonomelungo
per evitarlo, ho scritto un file che si chiama "go":
#!/bin/bash
cd nomelungo
cd altronomelungo
cd terzonomelungo
e gli ho dato l'eseguibilita' con:
chmod +x go
Quando pero' lo lancio con ./go non ottengo nessun effetto. Dove sto
sbagliando?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 sbagliando?
Invece di lanciarlo con ./go, usa
. ./go 
oppure
source ./go
-- 
Cio' che si vede, e'.

 sbagliando?
non sei nella dir dove c'è go;
oltre a quanto ti hanno suggerito puoi mettere lo script in 
/usr/local/bin, ma nel caso specifico penso che usare alias sia meglio;
r
-- 
Sulla tosticita' della Slackware ovvero Quale distro?
distribuzioni sedicenti amichevoli e realmente tali:
http://www.umpf.net/ramapage/

 homedir.
Sinceramente.. Sei un grande, e non perché ti chiami come me... Di tutti 
quelli che postano qui, sei l'unico che fornisce i motivi del problema e 
la soluzione in modo chiaro e sintetico... e me ne fotto se qualcun 
altro adesso rosica :-)
Davide.

 source ./go
Questo funziona! Grazie, buono a sapersi, ma credo usero' un alias come mi
suggeriscono in un altro post.


 Ma usare il tasto TAB pare brutto?
Piu' che altro pare scomodo. Devo digitare una quantita' di lettere,
maiuscole e minuscole, perche' gia' alla prima directory ho sia
"Scaricati" che "Scrivania", e non ti dico il resto (l'esempio che ho
fatto era molto semplificato).


 .: comando non trovato
Non sono sicuro di cosa scrivi, comunque e' un solo punto, non due come 
sembra da quello che hai quotato sopra.
. ./go
punto, spazio, punto, slash, "g", "o", enter.


 homedir.
In ./bashrc trovo:
# Alias definitions.
# You may want to put all your additions into a separate file like
# (tilde)/.bash_aliases, instead of adding them here directly
Che faccio?


 Cio' che si vede, e'.
Niente affatto, a quanto pare! :)


 
Problema annoso di alcuni server news (e mail).
[mode noioso professore ON]
Nel protocollo mail (mutuato nelle news), la fine del messaggio
è indicata da una riga contenente solo un punto.
Alcuni sistemi, per evitare che a causa della frammentazione dei
pacchetti possa capitare di interpretare un punto ad inizio riga
come riga di fine messaggio, duplicano "abusivamente" i punti ad
inizio riga (e newsland lo fa).
Perciò tu hai trovato una riga con due punti, mentre ne era stato
indicato uno solo nel post originario.
[mode noioso professore OFF]
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 Io ho semplicemente aggiunto in coda al file i miei alias.
Non ci siamo ancora. Ho modificato il file .bashrc aggiungendo la riga 
alias ll='ls -l'
ma se scrivo ll e premo invio mi dice:
ll: comando non trovato
Devo riavviare, o qualcosa del genere?


 Devo riavviare, o qualcosa del genere?
Devi fare logout e poi nuovamente login, oppure fare
source ~/.bashrc
-- 


 cd nomelungo/altronomelungo/terzonomelungo
un alternativa all'alias e a "." sono i link simbolici
$ pwd
/home/emma5
$ ln -s /home/emma5/nomelungo/altronomelungo1/terzonomelungo1 x1
$ ln -s /home/emma5/nomelungo/altronomelungo2/terzonomelungo2 x2
$ cd x1
$ cd ~/x2
$
ci potrebbe essere un problema:
$ pwd
/home/emma5/x2
$
mentre tu vorresti vedere il "vero" nome della directory, ma la shell
è configurabile:
$ set -o physical
$ pwd
/home/emma5/nomelungo/altronomelungo2/terzonomelungo2
$ 
il comando "set -o physical" lo puoi se vuoi ("you may want to":)
metterere in ~/.bash_profile
-- 
"It will be rain tonight."
            "Let it come down."

 Devo riavviare, o qualcosa del genere?
riavviare? ouch! NO!
1. salva il file, esci dall'editor (si sa mai...)
2. entra in una nuova shell (o con il comando "sh" o aprendo una nuova
   finestra di terminale (avrei detto un nuovo xterm, ma tu usi ubuntu
   e chissa cosa ti fanno usare)) ed ecco che "ll" funziona (~/.bashrc
   viene letto da ogni nuova shell)
naturalmente puoi far rileggere il file modificato dalla shell
corrente (come ti han detto) con "source ~/.bashrc"
-- 
vabbuò parliamo d'altro                            -- Agnosco, in IFQ

 cd nomelungo/altronomelungo/terzonomelungo
un'altra soluzione
$ tail -8 ~/.bashrc
ccd () {
  declare -A names_paths 
  names_paths=([name1]=path1 [name2]=path2 [nomen]=pathn)
  names_paths[nuovo_nome]=nuovo_path
  select name in ${!names_paths[*]} ; do
    cd ${names_paths[$name]}
    break
  done ; }
$ 
nella shell oltre a definire degli alias puoi definire delle funzioni,
la funzione ccd in particolare dichiara che 
1. la variabile names_paths è un vettore associativo (come si dice in
   italiano?),
2. la inizializza con la sintassi appropriata
3. ripensamento avvenuto mesi dopo, aggiungiamo un altra coppia chiave
   valore
4. la sintassi ${!names_paths[*]} da una lista delle chiavi, select
   name in "-> lista delle chiavi" ti permette di scegliere a video
   uno dei nomi corti che avrai associato (associative array) ai
   lunghi pathname
5. cambia directory usando il pathname associato al nome che hai
   scelto
6. esci dal loop (select è una struttura di controllo in un certo modo
   simile a un while true, di solito si esce dando un C-d al prompt
   "#? " ma qui dopo aver fatto cd non ti serve un nuovo cd)
7. "done" si accoppia con il "do" di riga 4, è sintassi che dichiara
   la fine del ciclo, poi "}" si accoppia con la "{" di riga 0 per
   dichiarare chiusa la dichiarazione di funzione
ecco un esempio di uso, dove ho dato il nuovo comando ccd e ho
risposto "4" al prompt "#? "
$ ccd
1) nomen
2) name2
3) name1
4) nuovo_nome
#? 4
bash: cd: nuovo_path: No such file or directory
$ 
hth anche a qualcunaltro
ps: gli associative array non vengono espansi rispettando l'ordine
della loro definizione, quindi non si comincia con nome1 e non si
finisce con nuovo_nome... è possibile scrivere una funzione che ordini
le chiavi ma ora vado a mangiare,
-- 
Lovercraft, bestia.                                -- Whip,    in IFQ

    viene letto da ogni nuova shell)
Xterm e` disponibile su Ubuntu, come pure in Debian, ma se si clicca sulla voce 
"Terminale" nel menu di Gnome, allora viene lanciato gnome-terminal; comunque 
sempre di bash si tratta, semplicemente la finestra visualizza anche il menu che 
invece non e` presente con xterm.

 Xterm e` disponibile su Ubuntu, come pure in Debian
oh, non si finisce mai di imparare
grazie e ciao
-- 
We are so small between the stars, so large against the sky,
and lost among the subway crowds I try to catch your eye.