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

percorso reale del file bash

9 views
Skip to first unread message

david stella

unread,
Apr 15, 2013, 4:54:34 AM4/15/13
to
Da un file bash, voglio lanciare un altro file bash, che sta nella
directory superiore.

Quindi ho creato il file /home/script/sub/test.sh:

#!/bin/bash
../sopra.sh
# altre operazioni...

Se quindi lancio il file bash direttamente dalla sua cartella, tutto
funziona.
Se invece lo lancio tramite un collegamento creato appositamente sulla
scrivania, non funziona:

../sopra.sh: File o directory non esistente

Naturalmente questo succede perchᅵ viene presa in considerazione la
directory superiore della Scrivania (/home) e non '/home/script'.

Si puᅵ aggirare il problema?

RedWiz

unread,
Apr 15, 2013, 5:31:02 AM4/15/13
to
On Mon, 15 Apr 2013 10:54:34 +0200, david stella wrote:

> Da un file bash, voglio lanciare un altro file bash, che sta nella
> directory superiore.
>
> Quindi ho creato il file /home/script/sub/test.sh:
>
> #!/bin/bash
> ../sopra.sh
> # altre operazioni...
>
> Se quindi lancio il file bash direttamente dalla sua cartella, tutto
> funziona.
> Se invece lo lancio tramite un collegamento creato appositamente sulla
> scrivania, non funziona:
>
> ../sopra.sh: File o directory non esistente
>
> Naturalmente questo succede perchè viene presa in considerazione la
> directory superiore della Scrivania (/home) e non '/home/script'.
>
> Si può aggirare il problema?

https://www.google.com/search?q=bash+get+script+path

mallin.shetland

unread,
Apr 15, 2013, 5:37:03 AM4/15/13
to
Addì lunedì 15 aprile 2013 10:54 david stella scrisse:

> Se quindi lancio il file bash direttamente dalla sua cartella, tutto
> funziona.

Non puoi lanciare un eseguibile da una cartella perché Linux
non ha cartelle.



Addì lunedì 15 aprile 2013 10:54 david stella scrisse:

> Da un file bash, voglio lanciare un altro file bash, che sta nella
> directory superiore.

Vai a cercare guai...



Addì lunedì 15 aprile 2013 10:54 david stella scrisse:

> Quindi ho creato il file /home/script/sub/test.sh:
>
> #!/bin/bash
> ../sopra.sh
> # altre operazioni...

Non puoi procedere così.
Prima di tutto gli eseguibile devono stare nella directory bin,
e le librerie nella directory lib, quindi come prima cosa ti crei
le directory ~/bin e ~/lib, poi aggiungi queste a $PATH e sposti
tutti i tuoi programmi personali lì. Magari anche metti i file di
configurazione in ~/etc (anche se i file di configurazione
personali possono stare benissimo nella tua $HOME.

Se poi hai ancora necessità di accedere ad un file in un'altra
directory ti crei un file di configurazione minimale dove inserire
questa directory. E per carità usa i /pathname/ assoluti.

PS Non vale la pena creare una directory ~/script, è ridondante.




Yoda

unread,
Apr 15, 2013, 7:46:15 AM4/15/13
to
Addi' 15 apr 2013, david stella scrive:

>Quindi ho creato il file /home/script/sub/test.sh:

>#!/bin/bash
>../sopra.sh

E' questo l'errore, vedi dopo.


[........]
>Naturalmente questo succede perchè viene presa in considerazione la
>directory superiore della Scrivania (/home) e non '/home/script'.

>Si può aggirare il problema?

Si', basta metterci il PATH assoluto, cosi':

------------------
#!/bin/bash
<=== riga in bianco e' d'uso
/home/script/sopra.sh
# altre operazioni...
--------------------------

--
Tanti saluti

david stella

unread,
Apr 15, 2013, 9:16:06 AM4/15/13
to
Il 15/04/2013 11:37, mallin.shetland ha scritto:
> Prima di tutto gli eseguibile devono stare nella directory bin,
> e le librerie nella directory lib, quindi come prima cosa ti crei
> le directory ~/bin e ~/lib, poi aggiungi queste a $PATH e sposti

Quindi ad esempio mi dovrei creare le directory '/bin/bash-script' e
'/lib/bash-script' ?

Quindi dovrei aprire '/etc/environment', ed aggiungere al PATH
'/bin/bash-script:/lib/bash-script' ?

> tutti i tuoi programmi personali lì. Magari anche metti i file di
> configurazione in ~/etc (anche se i file di configurazione
> personali possono stare benissimo nella tua $HOME.
>

E questi file di configurazione a cosa mi servirebbero?

> Se poi hai ancora necessità di accedere ad un file in un'altra
> directory ti crei un file di configurazione minimale dove inserire
> questa directory. E per carità usa i/pathname/ assoluti.

Questo discorso della configurazione non mi è chiaro, un esempio?

RedWiz

unread,
Apr 15, 2013, 9:58:57 AM4/15/13
to
On Mon, 15 Apr 2013 15:16:06 +0200, david stella wrote:

> Il 15/04/2013 11:37, mallin.shetland ha scritto:
>> Prima di tutto gli eseguibile devono stare nella directory bin, e le
>> librerie nella directory lib, quindi come prima cosa ti crei le
>> directory ~/bin e ~/lib, poi aggiungi queste a $PATH e sposti
>
> Quindi ad esempio mi dovrei creare le directory '/bin/bash-script' e
> '/lib/bash-script' ?
>
> Quindi dovrei aprire '/etc/environment', ed aggiungere al PATH
> '/bin/bash-script:/lib/bash-script' ?


mallin aspetta a rispondere che vado a comprare coca e pop corn :)

per l' OP: ti sei perso tutti i ~

http://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html


>> tutti i tuoi programmi personali lì. Magari anche metti i file di
>> configurazione in ~/etc (anche se i file di configurazione personali
>> possono stare benissimo nella tua $HOME.
>>
>>
> E questi file di configurazione a cosa mi servirebbero?

Ti servono nel momento in cui servono ai tuoi script.
Servono ai tuoi script?




>> Se poi hai ancora necessità di accedere ad un file in un'altra
>> directory ti crei un file di configurazione minimale dove inserire
>> questa directory. E per carità usa i/pathname/ assoluti.
>
> Questo discorso della configurazione non mi è chiaro, un esempio?

Ti faccio un esempio, se tu installi mplayer e lanci

mplayer film.avi

Il film viene riprodotto da mplayer con le sue impostazioni di default.
Se vuoi sovrascrivere queste impostazioni, ogni volta che lanci mplayer,
senza doverle esplicitare ogni volta come argomenti
es : mplayer -fs film.avi per avere la riproduziuone in fullscreen

devi creare un file di config per mplayer dove scrivi

fs=yes

e così via per ogni altra impostazione.

david stella

unread,
Apr 15, 2013, 10:06:28 AM4/15/13
to
Il 15/04/2013 13:46, Yoda ha scritto:
> Si', basta metterci il PATH assoluto, cosi':
>
> ------------------
> #!/bin/bash
> <=== riga in bianco e' d'uso
> /home/script/sopra.sh
> # altre operazioni...
> --------------------------
>

Così ogni volta che voglio spostare la dir. principale (/home/script)
devo mettere mano al path.

david stella

unread,
Apr 15, 2013, 10:28:59 AM4/15/13
to
Il 15/04/2013 15:58, RedWiz ha scritto:
> Ti faccio un esempio, se tu installi mplayer e lanci
>
> mplayer film.avi
>
> Il film viene riprodotto da mplayer con le sue impostazioni di default.
> Se vuoi sovrascrivere queste impostazioni, ogni volta che lanci mplayer,
> senza doverle esplicitare ogni volta come argomenti
> es : mplayer -fs film.avi per avere la riproduziuone in fullscreen
>
> devi creare un file di config per mplayer dove scrivi
>
> fs=yes
>
> e così via per ogni altra impostazione.

E nell'ambito degli script bash dove sta il parallelismo?

Forse vuoi dire che invece di

~/lib/a/b/c/d.sh

è meglio fare

~/etc/config.sh
$samplePath/d.sh

???

Naturalmente in ~/etc/config.sh ci metto
samplePath="~/lib/a/b/c"

Yoda

unread,
Apr 15, 2013, 10:54:16 AM4/15/13
to
Addi' 15 apr 2013, david stella scrive:
Ma perche' non fai come fanno tutti?
1) Crei la directory bin nella tua home-directory;
2) La aggiungi nel path con questa riga alla fine di ~/.profile:
export PATH="$PATH:/home/magen/bin";
3) sposti sopra.sh in /home/magen/bin/.

N.B. pero' che il terminale non lo so se vede .profile, forse devi
aggiungerlo anche da qualche altra parte -- dipende dalla distro e/o
dal tipo di terminale.

--
Tanti saluti

RedWiz

unread,
Apr 15, 2013, 11:04:17 AM4/15/13
to
On Mon, 15 Apr 2013 16:28:59 +0200, david stella wrote:

> Il 15/04/2013 15:58, RedWiz ha scritto:
>> Ti faccio un esempio, se tu installi mplayer e lanci
>>
>> mplayer film.avi
>>
>> Il film viene riprodotto da mplayer con le sue impostazioni di default.
>> Se vuoi sovrascrivere queste impostazioni, ogni volta che lanci
>> mplayer, senza doverle esplicitare ogni volta come argomenti es :
>> mplayer -fs film.avi per avere la riproduziuone in fullscreen
>>
>> devi creare un file di config per mplayer dove scrivi
>>
>> fs=yes
>>
>> e così via per ogni altra impostazione.
>
> E nell'ambito degli script bash dove sta il parallelismo?
>

Il parallelismo sta nel fatto che se qualcosa è parametrizzabile (vedi:
la posizione di un altro script da richiamare, lo username e password di
un eventuale database da interrogare, eccetera), è sempre meglio
parametrizzarla .

La parametrizzazione avviene scrivendo il valore di tali parametri in un
file di configurazione, quindi fuori dal sorgente dello script.
Al momento dell'esecuzione lo script legge ed interpreta il file di
configurazione, assegna i valori alle dovute variabili, e fa quel che
deve fare.

Poi puoi migliorare lo script accettande tali parametri anche da riga di
comando, in modo da sovrascrivere quelli scritti nel file di
configurazione, ma in generale non è necessario.

Scrivere invece il valore dei parametri direttamente all interno dello
script è una *pessima* pratica meglio nota come hard coding (pessima
sopratutto per linguaggi compilati, ma brutta anche per gli
interpretati), che può andar bene giusto per lo script che tieni solo tu
nel tuo pc che ti serve a rippare un cd audio, per fare un esempio.

http://it.wikipedia.org/wiki/Cablare_a_codice

>
> ~/lib/a/b/c/d.sh
>
> è meglio fare
>
> ~/etc/config.sh
> $samplePath/d.sh
>
> ???

diciamo di sì, anche se un file di configurazione non deve essere uno
script eseguibile. Vuoi scrivere direttamnete dentro al file il valore
della variabile?

ok, poi pero' usa
. ~/etc/tuo.config


>
> Naturalmente in ~/etc/config.sh ci metto samplePath="~/lib/a/b/c"

naturalmente

david stella

unread,
Apr 15, 2013, 12:02:27 PM4/15/13
to
Il 15/04/2013 17:04, RedWiz ha scritto:
>> >
>> >~/lib/a/b/c/d.sh
>> >
>> >è meglio fare
>> >
>> >~/etc/config.sh
>> >$samplePath/d.sh
>> >
>> >???
> diciamo di sì, anche se un file di configurazione non deve essere uno
> script eseguibile. Vuoi scrivere direttamnete dentro al file il valore
> della variabile?
>

Perchè, è sbagliato?
Mi avevi appena consigliato di usare questo sistema o no?
"scrivere direttamente": cosa indendi dire?

Andrea D'Amore

unread,
Apr 15, 2013, 1:00:24 PM4/15/13
to
In article <kkh4ao$8jj$1...@speranza.aioe.org>, Yoda <yo...@pippo.invalid>
wrote:

> N.B. pero' che il terminale non lo so se vede .profile, forse devi
> aggiungerlo anche da qualche altra parte -- dipende dalla distro e/o
> dal tipo di terminale.

Giusto per chiarezza dipende dalla shell non dall'emulatore di terminale.

Nel caso di bash il fatto che venga letto un file di configurazione (tra
cui .profile) piuttosto che un altro dipende dal tipo di shell che si
sta lanciando.
Altre shell possono ignorare del tutto il file .profile .

david stella

unread,
Apr 15, 2013, 3:02:48 PM4/15/13
to
Il 15/04/2013 16:54, Yoda ha scritto:
> Ma perche' non fai come fanno tutti?
> 1) Crei la directory bin nella tua home-directory;
> 2) La aggiungi nel path con questa riga alla fine di ~/.profile:
> export PATH="$PATH:/home/magen/bin";

L'ho fatto e mi andato tutto in tilt; meno male che avevo una live di
mint e sono riuscito a ripristinare.
Ma poi a cosa serve impostare questo PATH?
E non è la prima volta che in questo ng si danno suggerimenti incauti :(

Yoda

unread,
Apr 15, 2013, 4:00:38 PM4/15/13
to
Addi' 15 apr 2013, david stella scrive:
L'unica cosa che non puoi dirmi e' "incauto", perche' quando do
suggerimenti sono certo al 100% che non possono nuocere.
Hai fatto pasticci tu, copiando male qualcosa. Lo saprai tu.

N.B. che il "magen" e' del tutto errato, ma e' totalmente innocuo, non
era che una battuta: david stella -> Stella di Davide -> Magen (in
ebraico).

--
Tanti saluti

Enrico 'Henryx' Bianchi

unread,
Apr 15, 2013, 4:33:58 PM4/15/13
to
david stella wrote:

> E non è la prima volta che in questo ng si danno suggerimenti incauti :(

Oppure semplicemente non sei abbastanza attento da capire quello che stai
facendo e, di conseguenza, dai la colpa dei tuoi errori agli altri

Enrico

mallin.shetland

unread,
Apr 15, 2013, 4:36:28 PM4/15/13
to
Addì lunedì 15 aprile 2013 15:16 david stella scrisse:

> Quindi ad esempio mi dovrei creare ...

Senti trolletto, non sai cosa è l'espansione della tilde e vuoi fare
uno script bash, non sai le basi della programmazione e vuoi
questionare con arroganza, e non sapendo neanche cosa è $PATH
ti lamenti per errori commessi da te.

Vedi di andare da un'altra parte.

mallin.shetland

unread,
Apr 15, 2013, 4:47:21 PM4/15/13
to
Addì lunedì 15 aprile 2013 17:04 RedWiz scrisse:

> Scrivere invece il valore dei parametri direttamente all interno dello
> script è una pessima pratica meglio nota come hard coding (pessima
> sopratutto per linguaggi compilati, ma brutta anche per gli
> interpretati), che può andar bene giusto per lo script che tieni solo tu
> nel tuo pc che ti serve a rippare un cd audio, per fare un esempio.

Neanche per quello perchè userai quello script due o tre volte e poi
o fai uno script come si deve oppure trovi uno /front/ /end/ che fa le
stesse cose del tuo script in maniera migliore. E magari quel /front/
/end/ uguale uguale al tuo solo programmato meglio.

Tanto vale programmare bene fin dal principio


david stella

unread,
Apr 16, 2013, 2:16:54 AM4/16/13
to
Allora tra poco riproverò a fare la stessa cosa con un altro computer,
però intanto cercate di rispondere alle domande che ho fatto:

A cosa serve impostare questo PATH?
Serve il ';' finale?

Se si hanno chiare certe cose apparentemente elementari, forse si può
evitare qualche pasticcio...

david stella

unread,
Apr 16, 2013, 2:17:50 AM4/16/13
to
Il 15/04/2013 22:00, Yoda ha scritto:
> L'unica cosa che non puoi dirmi e' "incauto", perche' quando do
> suggerimenti sono certo al 100% che non possono nuocere.

Però dopo riavviato mi si è attivato la finestra di login di kde.
Però mi diceva: password errata.
Ho dovuto vincere il panico immediatamente, andando a cercare una
chiavetta su cui avevo messo mint, e fare il boot da li.

> Hai fatto pasticci tu, copiando male qualcosa. Lo saprai tu.
>

Ho aggiunto:

export PATH="$PATH:/home/mionome/bin";

Ma il ";" finale serve?

david stella

unread,
Apr 16, 2013, 2:35:38 AM4/16/13
to
Senti grandissimo stronzo, ti ricordo che siamo su it.comp.os.linux.iniziare

david stella

unread,
Apr 16, 2013, 2:40:27 AM4/16/13
to
Il 15/04/2013 22:00, Yoda ha scritto:
> L'unica cosa che non puoi dirmi e' "incauto", perche' quando do
> suggerimenti sono certo al 100% che non possono nuocere.

Però dopo riavviato mi si è stranamente attivata la finestra di login di
kde.
Inoltre provando a loggarmi: password errata.
Ho dovuto vincere il panico immediatamente, andando a cercare una
chiavetta su cui avevo messo mint, fare il boot da li, e ripristinare il
file allo stato precedente.

> Hai fatto pasticci tu, copiando male qualcosa. Lo saprai tu.
>

Ho aggiunto semplicemente:

mallin.shetland

unread,
Apr 16, 2013, 3:33:21 AM4/16/13
to
Addì martedì 16 aprile 2013 08:35 david stella scrisse:

> ... ti ricordo che siamo su it.comp.os.linux.iniziare

La buona educazione non è facoltativa

http://www.catb.org/esr/faqs/smart-questions.html

ftp://ftp.rfc-editor.org/in-notes/rfc1855.txt

www.arcetri.astro.it/CC/rfc1855_it.html


david stella

unread,
Apr 16, 2013, 6:33:53 AM4/16/13
to
Il 16/04/2013 09:33, mallin.shetland ha scritto:
> Addì martedì 16 aprile 2013 08:35 david stella scrisse:
>
>> ... ti ricordo che siamo su it.comp.os.linux.iniziare
>
> La buona educazione non è facoltativa


Guardati la tua, trollone di merda.

RedWiz

unread,
Apr 16, 2013, 6:48:46 AM4/16/13
to
On Mon, 15 Apr 2013 18:02:27 +0200, david stella wrote:

>>> >???
>> diciamo di sì, anche se un file di configurazione non deve essere uno
>> script eseguibile. Vuoi scrivere direttamnete dentro al file il valore
>> della variabile?
>>
>>
> Perchè, è sbagliato?
> Mi avevi appena consigliato di usare questo sistema o no? "scrivere
> direttamente": cosa indendi dire?

Non hai riportato le due righe successive, dove dico *come* farlo.
Eseguendo il file come script bash, invece che includerne il contenuto
tramite . , non va bene, devi studiarti lo scope delle variabili in bash.

http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html
http://ss64.com/bash/source.html


M_M

unread,
Apr 16, 2013, 7:11:07 AM4/16/13
to
Yoda <yo...@pippo.invalid> ha scritto:

> 1) Crei la directory bin nella tua home-directory;
> 2) La aggiungi nel path con questa riga alla fine di ~/.profile:
> export PATH="$PATH:/home/magen/bin";
> 3) sposti sopra.sh in /home/magen/bin/.

Non so se su altri sistemi sia cosi`; su Debian testing nel file
~/.profile
leggo:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi

quindi basta creare la directory bin nella home
spostare sopra.sh in ~/bin/
e se si vuole usarlo subito da terminale dare:
$ . .profile




Yoda

unread,
Apr 16, 2013, 9:07:35 AM4/16/13
to
Addi' 15 apr 2013, Andrea D'Amore scrive:
>In article <kkh4ao$8jj$1...@speranza.aioe.org>, Yoda <yo...@pippo.invalid>
>wrote:

>> N.B. pero' che il terminale non lo so se vede .profile, forse devi
>> aggiungerlo anche da qualche altra parte -- dipende dalla distro e/o
>> dal tipo di terminale.

>Giusto per chiarezza dipende dalla shell non dall'emulatore di terminale.

Si' grazie, cmq questo lo sapevo, ma escludevo l'uso d'ogni altra shell
da parte dell'OP. Invece ho cercato d'abbreviare le info per cio' che
riguarda i terminali - vedi dopo - anche perche' mi fa piacere
rispondere ma non ho molto tempo, un giorno posso un altro no.

>Nel caso di bash il fatto che venga letto un file di configurazione (tra
>cui .profile) piuttosto che un altro dipende dal tipo di shell che si
>sta lanciando.
>Altre shell possono ignorare del tutto il file .profile .

Il fatto e' che magari ~/.profile neppure ce l'ha, se non ricordo male
un tempo c'era ~/.bash_profile che ha la precedenza e addirittura
impedisce la lettura di ~/.profile anche se c'e' (parlo della Debian).
L'ordine in ogni caso e': .bash_profile .bash_login .profile, quando ne
trova uno gli altri non li cerca piu'.

Ma sui terminali ne so pochissimo, non li uso, so che la Konsole di KDE
ho dovuto fare i salti per renderla appena appena decente per le poche
volte che la uso, ma non legge l' ~/.profile perche' non e' la shell di
login, legge invece /etc/bash.bashrc e poi ~/.bashrc. Percio' sui
terminali ho tergiversato, nel caso avrebbe potuto chiedere nuovamente.

--
Tanti saluti

Yoda

unread,
Apr 16, 2013, 9:07:36 AM4/16/13
to
Addi' 16 apr 2013, david stella scrive:
E' indifferente metterci o non metterci, sia il punto e virgola, sia le
virgolette, era una riga a prova di niubi' ma hai pasticciato lo stesso.

--
Tanti saluti

Yoda

unread,
Apr 16, 2013, 9:07:37 AM4/16/13
to
Addi' 16 apr 2013, M_M scrive:
>Yoda <yo...@pippo.invalid> ha scritto:

>> 1) Crei la directory bin nella tua home-directory;
>> 2) La aggiungi nel path con questa riga alla fine di ~/.profile:
>> export PATH="$PATH:/home/magen/bin";
>> 3) sposti sopra.sh in /home/magen/bin/.

>Non so se su altri sistemi sia cosi`; su Debian testing nel file
>~/.profile
>leggo:

># set PATH so it includes user's private bin if it exists
>if [ -d "$HOME/bin" ] ; then
> PATH="$HOME/bin:$PATH"
>fi

>quindi basta creare la directory bin nella home
>spostare sopra.sh in ~/bin/

Si', io l'ho cambiato portando ~/bin in ultima posizione (non si sa mai
in caso d'omonimia), inoltre la directory bin l'ho fatta in /home,
perche' mi loggo con diversi nick e le utility devono essere disponibili
a tutti. Invece vedo che la deb non usa esportare il PATH, io lo devo
aver ereditato o dalla slack o dalla redhat in illo tempore, non mi e'
chiaro a cosa serva esportarlo... dovro' indagare.

>e se si vuole usarlo subito da terminale dare:
>$ . .profile

Il fatto e' anche che veramente la bash del terminale dubito che legga
.profile, nella konsole di KDE legge solo /etc/bash.bashrc e ~/.bashrc.
In ogni caso il discorso per l'OP si allunga troppo, perche' non e' da
terminale ma da un'icona del desktop - alla windows - che deve venir
chiamato, e io non ho la minima idea di quale path seguano le icone.

--
Tanti saluti

Yoda

unread,
Apr 16, 2013, 9:36:50 AM4/16/13
to
Addi' 16 apr 2013, Yoda scrive:

>non mi e'
>chiaro a cosa serva esportarlo... dovro' indagare.

Adesso lo so: lo esporta alle non-login shell, infatti nel terminale
konsole il path risulta quello che figura in .profile per la shell di
login e non quello di .bashrc per quelle non-login.
Comunque adesso la tolgo la direttiva export, voglio seguire la deb in
tutto.

--
Tanti saluti

david stella

unread,
Apr 16, 2013, 10:43:11 AM4/16/13
to
Il 16/04/2013 12:48, RedWiz ha scritto:
> Non hai riportato le due righe successive, dove dico*come* farlo.
> Eseguendo il file come script bash, invece che includerne il contenuto
> tramite . , non va bene, devi studiarti lo scope delle variabili in bash.
>
> http://www.tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_02.html
> http://ss64.com/bash/source.html
>
>

Si, ora è chiaro.
Però se voglio passare solo determinati parametri ad una libreria,
preferirei sempre eseguirla in una shell a parte::

~/lib/abc.sh 1 2 3

piuttosto che

x=1
y=2
z=3
. ~/lib/abc.sh

Non è più prolisso e meno pratico?

david stella

unread,
Apr 16, 2013, 11:48:00 AM4/16/13
to
Il 16/04/2013 15:07, Yoda ha scritto:
> E' indifferente metterci o non metterci, sia il punto e virgola, sia le
> virgolette, era una riga a prova di niubi' ma hai pasticciato lo stesso.

Guarda che non ho pasticciato niente, evidentemente ᅵ colpa del kde
installato sull'altro pc, che ha combinato qualche casino.

M_M

unread,
Apr 16, 2013, 11:54:25 AM4/16/13
to
Yoda <yo...@pippo.invalid> ha scritto:

> >e se si vuole usarlo subito da terminale dare:
> >$ . .profile
>
> Il fatto e' anche che veramente la bash del terminale dubito che legga
> ..profile, nella konsole di KDE legge solo /etc/bash.bashrc e ~/.bashrc.

Da gnome-terminal lo legge.

Sempre nel commento in testa al file c'e` scritto:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.

ed io in effetti non ho ne` ~/.bash_profile ne` ~/.bash_login


mallin.shetland

unread,
Apr 16, 2013, 12:19:10 PM4/16/13
to
Addì martedì 16 aprile 2013 17:48 david stella scrisse:

> Guarda che non ho pasticciato niente, evidentemente è colpa del kde
> installato sull'altro pc, che ha combinato qualche casino.

No mamma, non ho infilato il computer del babbo nella lavastoviglie,
stavamo giocando a nascondino e si è nascosto lì da solo.



mallin.shetland

unread,
Apr 16, 2013, 12:22:25 PM4/16/13
to
Addì martedì 16 aprile 2013 18:19 mallin.shetland scrisse:
E poi il gatto ha avviato la lavastoviglie.

david stella

unread,
Apr 16, 2013, 12:49:22 PM4/16/13
to
BI A ACCA

mallin.shetland

unread,
Apr 16, 2013, 1:01:43 PM4/16/13
to
Addì martedì 16 aprile 2013 16:43 david stella scrisse:

> Si, ora è chiaro.

Ho i miei dubbi.



> Però se voglio passare solo determinati parametri ad una libreria
> ,..

Non hai capito cosa è una libreria.




> ~/lib/abc.sh 1 2 3
>
> piuttosto che
>
> x=1
> y=2
> z=3
> . ~/lib/abc.sh
>
> Non è più prolisso e meno pratico?

Ancora ti ostini a non capire. Ti fermi all'apparenza e non vai nel contesto
delle cose.

Avere dei parametri cablati nel tuo codice rene il tuo codice praticamente
inusabile, qualunque linguaggio di programmazione tu usi.

Quindi questi esempi sono assolutamente inutili se non capisci prima di
cosa stiamo parlando.

david stella

unread,
Apr 16, 2013, 4:46:32 PM4/16/13
to
Il 16/04/2013 19:01, mallin.shetland ha scritto:
>> Però se voglio passare solo determinati parametri ad una libreria
>> ,..
>
> Non hai capito cosa è una libreria.
>

Un insieme di funzioni (o risorse) usate da uno o più programmi.
Si lo so, oltre a questo non devono essere file eseguibili.

>
>
>
>> ~/lib/abc.sh 1 2 3
>>
>> piuttosto che
>>
>> x=1
>> y=2
>> z=3
>> . ~/lib/abc.sh
>>
>> Non è più prolisso e meno pratico?
>
> Ancora ti ostini a non capire. Ti fermi all'apparenza e non vai nel contesto
> delle cose.
>
> Avere dei parametri cablati nel tuo codice rene il tuo codice praticamente
> inusabile, qualunque linguaggio di programmazione tu usi.
>

Andrebbero quindi in un file di configurazione.

> Quindi questi esempi sono assolutamente inutili se non capisci prima di
> cosa stiamo parlando.
>

Amico, sono all'inizio, ma la volontà c'è, quindi...

Piergiorgio Sartor

unread,
Apr 16, 2013, 5:08:06 PM4/16/13
to
On 2013-04-16 08:16, david stella wrote:
[...]
> Allora tra poco riproverò a fare la stessa cosa con un altro computer,
> però intanto cercate di rispondere alle domande che ho fatto:
>
> A cosa serve impostare questo PATH?

La stringa $PATH ontiene una lista di directory dove
l'interprete di comandi (shell, di solito bash) cerca,
appunto, i comandi dati da terminale.

Se provi "echo $PATH" ti viene stampata una stringa
contenente directory separate da ":".
Quelle sono le directory dove i comandi vengono
cercati, e solo quelle.

> Serve il ';' finale?

Non credo, ma non sono sicuro.

> Se si hanno chiare certe cose apparentemente elementari, forse si può
> evitare qualche pasticcio...

Crea un secondo utente e usa quello per
fare queste prove.
In caso di pasticci puoi sempre tornare
al primo utente e sistemare le cose.

*NON* usare "root" per fare esperimenti.

bye,

--

piergiorgio

mallin.shetland

unread,
Apr 16, 2013, 5:50:08 PM4/16/13
to
Addì martedì 16 aprile 2013 22:46 david stella scrisse:

> Amico, [...]

Quandi abbiamo mangiato dallo stesso piatto?



> [...] sono all'inizio,

No! Tu non hai ancora iniziato. Prendi un bel tutorial e
inizia a leggere; ogni libro è spiega cosa è $PATH e
come si cambia.


> [...] ma la volontà c'è, quindi...

Dove? Non la vedo! Dove sta la tua volontà?

Creare una directory e cambiare il $PATH è alla portata di
tutti; non ci sei riuscito, non fa niente. Tu stesso non sai
cosa hai combinato, come possiamo saperlo noi?
Come possiamo sapere cosa non funziona se *TU* non
posti cosa hai fatto?
Posta tutti i dettagli, i comandi che hai dato, e gli errori che
hai avuto, magari anche i file che hai cambiato e lo script
che non funziona, e forse capirai da solo dove hai sbagliiato.

Hai letto lo scritto di Raymond vero?

RedWiz

unread,
Apr 16, 2013, 6:41:13 PM4/16/13
to
i give up

david stella

unread,
Apr 17, 2013, 2:28:38 AM4/17/13
to
Il 16/04/2013 23:50, mallin.shetland ha scritto:
>> [...] sono all'inizio,
>
> No! Tu non hai ancora iniziato. Prendi un bel tutorial e
> inizia a leggere; ogni libro è spiega cosa è $PATH e
> come si cambia.
>

Infatti ho letto anche qualche man, ed ho impostato tutto perfettamente,
anzi non c'è ne stato bisogno...
~/.profile mi contiene già

if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi


>
>> [...] ma la volontà c'è, quindi...
>
> Dove? Non la vedo! Dove sta la tua volontà?
>

Purtroppo non mi conosci.

> Creare una directory e cambiare il $PATH è alla portata di
> tutti; non ci sei riuscito, non fa niente. Tu stesso non sai

mkdir ~/bin
mkdir ~/etc
mkdir ~/lib

> cosa hai combinato, come possiamo saperlo noi?
> Come possiamo sapere cosa non funziona se *TU* non
> posti cosa hai fatto?

A me sembra che funziona tutto.
Nell'ultimo post ho fatto solo delle domande in merito alle librerie.
Domande da newbye, quale sono, ma se mi date un po' di tempo per crescere...

> Posta tutti i dettagli, i comandi che hai dato, e gli errori che
> hai avuto, magari anche i file che hai cambiato e lo script
> che non funziona, e forse capirai da solo dove hai sbagliiato.

Aridalle :-b

david stella

unread,
Apr 17, 2013, 2:41:16 AM4/17/13
to
Il 16/04/2013 23:08, Piergiorgio Sartor ha scritto:
> La stringa $PATH ontiene una lista di directory dove
> l'interprete di comandi (shell, di solito bash) cerca,
> appunto, i comandi dati da terminale.
>
> Se provi "echo $PATH" ti viene stampata una stringa
> contenente directory separate da ":".
> Quelle sono le directory dove i comandi vengono
> cercati, e solo quelle.
>

Avevo già letto, cmq grazie :-)

>> >Serve il ';' finale?
> Non credo, ma non sono sicuro.
>

Cmq con usando il ';' come separatore, si possono mettere più
'istruzioni' sulla stessa riga, intuisco...
Anche se non mi pare il caso di creare disordine.

>> >Se si hanno chiare certe cose apparentemente elementari, forse si può
>> >evitare qualche pasticcio...
> Crea un secondo utente e usa quello per
> fare queste prove.
> In caso di pasticci puoi sempre tornare
> al primo utente e sistemare le cose.
>

Buon consiglio.

> *NON* usare "root" per fare esperimenti.

Certo che no ;)
0 new messages