Permalänk
Medlem

Shell script-hjälp

Jag håller på med ett litet script för att mounta SMB-enheter:

until [ "`ls -l /smb/ | grep *Private* | awk '{print $2}'`" -eq "1" ]; do sudo smbmount //x.x.x.x/Rose\ -\ Private /smb/Rose\ -\ Private/ done

Tyvärr verkar det inte fungera och get output: ./.smbmount.sh: line 3: [: : integer expression expected

Så nu vänder jag mig till er scriptgurus!

Tack i förväg!

Edit: första problemet löst, skulle vara:
"`ls -l /smb/ | grep *Private* | awk '{print $2}'`" = "1", dock verkar det inte lämna önskat resultat, uttrycket verkar vara true hela tiden

Visa signatur

qw q b

Permalänk
Medlem

until [ `ls -l /smb | grep Private | wc -l` -gt 0 ] do sudo smbmount //x.x.x.x/Rose\ -\ Private /smb/Rose\ -\ Private/ done

?

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av e5150

until [ `ls -l /smb | grep Private | wc -l` -gt 0 ] do sudo smbmount //x.x.x.x/Rose\ -\ Private /smb/Rose\ -\ Private/ done

?

Nja, funkar inte i min situation för mapparna finns alltid där.

Edit: Löste det:
until [ "`ls -l /smb/ | grep Private | awk '{printf $2}'`" -eq "1" ]; do

Visa signatur

qw q b

Permalänk
Medlem

ja, det förstås, "[ `ls -ld /smb/Rose\ -\ Private|awk '{print $2}'` -eq 1 ]" istället då

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av e5150
ja, det förstås, "[ `ls -ld /smb/Rose\ -\ Private|awk '{print $2}'` -eq 1 ]" istället då

Kom fram till samma lösning eftersom den tidigare lösningen inte klarade av situationer där grep fångade flera mappar, te.x. "Private" och "Private 2", resultatet blev då 11/22/12/21.

"until [ "`ls -ld /smb/Rose\ -\ Private | awk '{printf $2}'`" -eq "1" ]; do" är final iaf.

Visa signatur

qw q b