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
> 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?
Invece di lanciarlo con ./go, usa
. ./go
oppure
source ./go
--
Cio' che si vede, e'.
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/
>
> Lo script esegue il comando, ma lo script funziona in una 'SUA' bash
> e non influisce sulla shell "esterna" che lo richiama. Ergo, tu resti
> dove eri prima.
>
> Suggerimento: creati un ALIAS:
>
> alias mycd='cd nomelungo/altronomelungo/terzonomelungo'
>
> a questo punto digitando 'mycd' dovrebbe fare tutto automaticamente.
> Per renderlo permanente aggiungi lo stesso comando a .bashrc nella tua
> 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.
> .. ./go
.: comando non trovato
> 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).
> Marco ha scritto:
>
>> .. ./go
>
> .: 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.
> a questo punto digitando 'mycd' dovrebbe fare tutto automaticamente.
> Per renderlo permanente aggiungi lo stesso comando a .bashrc nella tua
> 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?
> .. ./go
Questo io lo leggo:
punto, punto, spazio, punto, slash, "g", "o", enter.
Tieni conto che io non sto modificando nulla del tuo quoting, e'
esattamente quello che appare su Newsland!
> punto, spazio, punto, slash, "g", "o", enter.
Questo funziona, grazie.
> 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?
> Davide Bianchi ha scritto:
>
>> 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?
Devi fare logout e poi nuovamente login, oppure fare
source ~/.bashrc
--
> Uso l'ultimo Ubuntu, e spesso devo lavorare col terminale sempre nella
> stessa directory, che chiamo digitando:
>
> 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."
> Davide Bianchi ha scritto:
>
>> 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?
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
> Uso l'ultimo Ubuntu, e spesso devo lavorare col terminale sempre nella
> stessa directory, che chiamo digitando:
>
> 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
> 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)
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.