Newsgroup: it.comp.os.linux.iniziare
Titolo: Primi problemi con bash

Ho abbandonato l'idea di montare una penna USB sul mio vecchio
notebook su cui gira Debian, ma rimane la necessità di scambiare dati
con un altro PC non in rete, utilizzando un floppy.
Utilizzando i comandi mount e umount non ci sono problemi.
Ora vorrei automatizzare qualche operazione manuale, utilizzando uno o
più script.
Dopo una ricerca in rete, ho cominciato a studiare questo HT:
BASH Programming - Introduction HOWTO
Solo che il primo tentativo di scrivere uno script è fallito!
Lo script, salvato come hello, è il seguente:
#!/bin/bash          
 echo Hello World
Digito hello e ricevo "command not found".
Ho verificato, come dice HT, che bash sia nella directory /bin.
Sono passato da utente a root, ma il problema persiste.
Dove sbaglio?
--
Bye, Yorgos
To send me an e-mail, please change occupied with libero

 Dove sbaglio?
hai dato i permessi di esecuzione al file ?
$ chmod 0755 hello
$ ./hello
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

even if i sincerely trust in Yorgos, i will ruin what said on Wed, 30 Aug
2006 14:58:58 +0200. my nick allows me to.

devi renderlo eseguibile.
poi dai ./hello
-- 
whatever happened to sex, drugs & rock'n'roll?
now all we have is aids, crack and techno.
[utente linux borderline]

$ ./hello
Funziona, grazie ad entrambi!


 fallito!
Non fa niente, capita a molti.
vediamo tutti i passi in dettaglio:
1) creazione dello script
OK
2) modifica dei permessi in modo da 
   rendere eseguibile lo script
$ chmod  +x hello
Sicuro che non hai saltato questo passo?
3) invocazione dello script
$ ./hello
Nota il punto e la barra prima del 
nome del programa. Eppure la abs e'
chiara a proposito; comunque ripetiamo:
La variabile PATH specifica le directory che 
contengono programmi ed in cui la shell cerca
i comandi quando non riesce ad individuare il
file corrispondente e la directory corrente 
non e' mai contenuta nel PATH perche' questa 
non e' un'idea molto intelligente
Quindi per eseguire un tuo programma puoi
1) mettere il programma in ~/bin ed aggiungere
   questa directory al PATH
2) specificare il percorso del programma tipo:
$ /bin/grep
$ /usr/bin/gzip
$ /home/pippo/prova/helloworld
$ ./bin/mioprogramma
......
3) invocare direttamente la shell
$ bash hello


 con un altro PC non in rete, utilizzando un floppy.
Perché hai abbandonato l'idea della pen drive ?
Comunque ti scrivo quello che devi fare.
anzitutto 
lsusb (vedi se la pen è riconosciuta, se appare la marca dovrebbe esserlo),
se no devi ricompilare il kernel abilitando a modulo alcune voci sotto USB
device.
Se è riconosciuta aggiungi questa riga (da root) al file /etc/fstab :
/dev/sda1       /mnt/pendrive   vfat    rw,user,noauto  0       0
(occhio può essere sda o sda1, prova prima sda1).
Poi, sempre da root :
# mkdir /mnt/pendrive
mount /mnt/pendrive
Tutto questo funziona se il file system con cui hai formattato la pen è FAT.
(In genere è fat). 
Ciao.

 sto mettendo tutta.
sei nella norma, te lo assicuro ... ci siamo passati tutti ;-)))
ciao ... e tieni duro !!
;-)))


 FAT.
appunto , perchè limitarlo al solo vfat?
fdisk -l /dev/quelcheè
poi monta il dispositivo specificando l'FS 
mai usata una penna in etx2 ?
Red

Perché hai abbandonato l'idea della pen drive ?
Per non annoiare gli altri amici del NG, ti segnalo il thread dal
quale sono uscito senza una soluzione, purtroppo, malgrado l'impegno
di quanti mi hanno aiutato:
22 agosto ore 8.41 MONTARE PENNA USB Yorgos


sei nella norma, te lo assicuro ... ci siamo passati tutti ;-)))
Meno male!
Un altro aiuto, per favore.
Ho creato due script, ./monta e ./smonta.
Da root funzionano regolarmente.
Modifico i permessi di esecuzione con questo comando:
chmod a+x ./smonta
chmod a+x ./monta
Esco e passo a utente (pluto).
Eseguo  ./smonta, ma ricevo il messaggio 
"/bin/bash: ./smonta: Permission denied"
E' perché non ho i permessi di esecuzione di /bin/bash?


 "/bin/bash: ./smonta: Permission denied"
che cosa c'e' scritto in questi 2 script?
comunque, se fanno quello che il loro nome dice, penso che quella che hai
intrapreso non sia la via corretta: piu' semplicemente devi
modificare /etc/fstab per permettere a tutti gli utenti di montare le
partizioni con un semplice mount /nomedir
se e' questo quello che desideri, in /etc/fstab devi modificare la riga di
ogni device di cui vuoi consentire che gli utenti montino a loro piacere
aggiungendo l'opzione users (e' la 4a colonna)
per esempio, vedi il mio:
$ cat /etc/fstab
/dev/hde1        swap             swap        defaults         0   0
/dev/hde2        /                reiserfs    defaults         1   1
/dev/hde3        /home            reiserfs    defaults         1   2
/dev/hda         /mnt/cdrw        auto        noauto,users,ro  0   0
/dev/hdc         /mnt/dvd         auto        noauto,users,ro  0   0
/dev/sda1        /mnt/penna       auto        noauto,users     0   0
/dev/fd0         /mnt/floppy      auto        noauto,users     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
$    
come vedi, ho consentito il montaggio del floppy disk, della penna usb, del
masterizzatore cd e del lettore dvd
-- 
Under construction

On Wed, 30 Aug 2006 16:07:11 +0200, Yorgos wrote:
  Ciao,
  un consiglio, se posso. Prima di cimentarti negli scriptini, vedi di
chiarirti le idee su gruppi , permessi e magari anche la variabile
d'ambiente "PATH": senza quelle basi rischi di andare molto, molto a
rilento. Ci vuole poco e non e' difficile: 'man' seguito da group,
groups, chown, chmod, chgrp e poco altro che trovi in rete o nei NG.
:-)
  Un saluto,
-- 
Gianfranco Bertozzi
Linux User #183585
gber...@tiscali.it

aggiungendo l'opzione users (e' la 4a colonna)
La riga è gia presente nel mio fstab, ed è identica alla tua.


groups, chown, chmod, chgrp e poco altro che trovi in rete o nei NG.
OK, grazie.
Conosco già il comando PATH dal DOS, ora lo studierò anche per Linux.


 La riga è gia presente nel mio fstab, ed è identica alla tua.
quindi se fai
$ mount /mnt/floppy 
da utente, ti monta il floppy disk, esatto?
Se e cosi', i 2 script a che ti servono? :)
-- 
Under construction

 Se e cosi', i 2 script a che ti servono? :)
  Beh, quelli ce li ho anche io. Si fa prima a fare 'mntf' che tutta 
quella pappardella li'. :-)
  Saluti,


 quella pappardella li'. :-)
tab completion, questa sconosciuta...
-- 
Under construction

 E' perché non ho i permessi di esecuzione di /bin/bash?
]zac[
Leggi bene ti dice che bash lanciando smonta ha avuto l'errore di permesso
negato.
Mancano i permessi di lettura?
In questi casi conviene dare un chmod 755 nomeprogramma da root (sono i
permessi standard di molti programmi).

Se e cosi', i 2 script a che ti servono? :)
Pensavo servissero per agganciarli a due icone sul desktop. C'è un
altro metodo?
Probabilmente penso ancora "windows", ma vorrei cambiare :-)


In questi casi conviene dare un chmod 755 nomeprogramma da root
Fatto.
Poi ritorno come utente, eseguo "smonta" e mi dice "command not
found".
Idem per "monta".


 found".
]zac[
I comandi che non sono nel path ( echo $PATH ), devono essere lanciati
scrivendo tutto il percorso.
I comando devono essere posti in posti raggiungibili dall'utente (quindi non
in /root e non in /home/dialtroutente ).

in /root e non in /home/dialtroutente ).
I file script che lancio sono in /home/utente, ciononostante non
vanno.
Gli script sono pubblicati in questo thread.


 altro metodo?
si' :)
(per kde, non conosco gli altri DE)
pulsante dx sul desktop -> crea -> collegamento a un dispositivo ->
dispositivo dischetti (o cdrom, o quel che preferisci)
okkio, seleziona dalla linguetta "dispositivo" il device che vuoi associare
all'icona
-- 
Under construction

 vanno.
Proprio perche' la directory corrente NON e' nel PATH.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

(per kde, non conosco gli altri DE)
Purtroppo non ho KDE, ma IceWm


Proprio perche' la directory corrente NON e' nel PATH.
Ma io sono nella directory corrente!
Quindi anche in questo caso va messo nel PATH?
Scusa l'insistenza, ma per capire la differenza con il comportamento
di PATH in DOS.


 di PATH in DOS.
Figurati, e' proprio perche' la differenza non salta agli occhi,
che insistevo anch'io.
Se fai echo $PATH, vedrai una cosa del genere:
poggir@proliant:/ulocal/poggir$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games
Per avere anche la directory corrente, dovresti vedere una
cosa del genere:
poggir@proliant:/ulocal/poggir$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:.
La differenza sta tutta nel punto alla fine del PATH, che indica
proprio la directory corrente.


proprio la directory corrente.
A me il punto non compare, malgrado la modifica del PATH nei tre file.
Non so più dove mettere mano, non vorrei proprio lavorare come root!


 I programmi non funzionano se non dando prima "su" e password.
Questo è diverso. Evidentemente hai sbagliato ad impostare i diritti di
esecuzione.
posta il risultato di ls -la NomeFile 
comunque consulta il man chmod e man chown
bye, giubbe

 in /usr/home/file1.sh
ehm, era /home/pippo/file1.sh
sorry

 tab completion, questa sconosciuta...
  Appunto! Tu prova a fare:
mou TAB /mn TAB fl TAB INVIO
 dopo il secondo TAB ti vien voglia di sbattere il portatile nel 
muro... :-o
 
E invece prova un semplicissimo
mn TAB INVIO
  Sei gia' arrivato, l'umore alle stelle e il corpo piu' veloce della
luce, pronto e pimpante per montare altri dispositivi! ;-p
  Buonanotte. Forse e' meglio che vada a letto... :°)


   Buonanotte. Forse e' meglio che vada a letto... :°)
buongiorno :)
(si', decisamente e' ora che ci vada anch'io °__°)
-- 
Under construction

 mi basta tenere l'anulare destro sul tasto tab e son contento :)
Anulare destro?
Adesso al circo fanno usare i computer, ai contorsionisti?


 A me il punto non compare, malgrado la modifica del PATH nei tre file.
Meglio cosi'. :-)


dato da utente normale vedrai che funziona.
Infatti funziona.


comunque consulta il man chmod e man chown
Li ho stampati e li sto consulatndo, ma non mi schiodo dal problema
:-(
Grazie!



in effetti dovrebbe andare, ma perchè non cambi utente e gruppo al
file mettendoci tu stesso?
L'errore che ti dà qual è?
bye

 esecuzione del file?
No.
La shell cerca il programma/script _SOLO_ nel path.


La shell cerca il programma/script _SOLO_ nel path.
FINALMENTE ho capito!
Pensavo che funzionasse come in DOS, e questo mi aveva condizionato
nel comprendere il funzionamento del PATH.
Grazie mille per la tua pazienza!


 Grazie mille per la tua pazienza!
Sono trent'anni che ho a che fare con utenti informatici.
Ho il muscolo della pazienza piuttosto allenato.


 Adesso al circo fanno usare i computer, ai contorsionisti?
erh
sinistro ^^;;;
-- 
Under construction