Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

piccolo file da eseguire

2 views
Skip to first unread message

emma5

unread,
Sep 2, 2010, 1:54:13 PM9/2/10
to
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


Message has been deleted

Marco

unread,
Sep 2, 2010, 1:49:37 PM9/2/10
to
On Thu, 02 Sep 2010 19:54:13 +0200
em...@nemest.it (emma5) wrote:

> 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'.

Rama

unread,
Sep 2, 2010, 2:10:54 PM9/2/10
to
On 09/02/2010 07:54 PM, emma5 wrote:
>
> Quando pero' lo lancio con ./go non ottengo nessun effetto. Dove sto
> 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/

Message has been deleted

ZioDave

unread,
Sep 2, 2010, 3:19:28 PM9/2/10
to
Il 02/09/2010 19:58, Davide Bianchi ha scritto:

>
> 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.

emma5

unread,
Sep 3, 2010, 4:30:42 AM9/3/10
to
Marco ha scritto:

> .. ./go

.: comando non trovato

> source ./go

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

emma5

unread,
Sep 3, 2010, 4:34:10 AM9/3/10
to
Tetsuya ha scritto:

> 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

unread,
Sep 3, 2010, 4:42:03 AM9/3/10
to
emma5 wrote:

> 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.

emma5

unread,
Sep 3, 2010, 4:50:15 AM9/3/10
to
Davide Bianchi ha scritto:

> 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?

emma5

unread,
Sep 3, 2010, 4:56:41 AM9/3/10
to
Marco ha scritto:

> .. ./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! :)

Message has been deleted

roberto

unread,
Sep 3, 2010, 5:42:24 AM9/3/10
to
emma5 ha scritto:

> Marco ha scritto:
>
>> .. ./go
>
> Questo io lo leggo:
>
> punto, punto, spazio, punto, slash, "g", "o", enter.
>

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

Message has been deleted

emma5

unread,
Sep 3, 2010, 7:18:57 AM9/3/10
to
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?

Marco

unread,
Sep 3, 2010, 7:20:29 AM9/3/10
to
emma5 wrote:

> 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

--

Giacomo Boffi

unread,
Sep 3, 2010, 7:24:00 AM9/3/10
to
em...@nemest.it (emma5) writes:

> 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."

Giacomo Boffi

unread,
Sep 3, 2010, 7:30:01 AM9/3/10
to
em...@nemest.it (emma5) writes:

> 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

Giacomo Boffi

unread,
Sep 3, 2010, 8:17:28 AM9/3/10
to
em...@nemest.it (emma5) writes:

> 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

M_M

unread,
Sep 3, 2010, 11:00:20 AM9/3/10
to
Giacomo Boffi <giacom...@polimi.it> ha scritto:

> 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.


Giacomo Boffi

unread,
Sep 3, 2010, 11:52:28 AM9/3/10
to
"M_M" <21639i...@mynewsgate.net> writes:

> 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.

0 new messages