Προς το περιεχόμενο

unix command script problhma...


Επισκέπτης

Προτεινόμενες αναρτήσεις

Επισκέπτης
Δημοσ.

loipon,

thelw na ylopoihsw thn entolh start se unix

h entolh ayth sthn oysia tha katalabainei ti katalhksh exei to arxeio poy toy dinw(sthn prokeimenh periptwsh to filename.txt) kai tha kalei to antistoixo programma gia na to anoiksei..dhladh gia to arxeio filename tha kalesei ton vi...

sthn ousia to script den exei nohma alla einai ergasia sta plaisia toy mathimatos "Leitoyrgika Systhmata"

to protypo ths entolhs einia ayto:

start [param1 [param2 … ] ] filename.txt

 

ayto poy de kserw einai pws na syndesw thn entolh start me to script poy katalabainei tis katalhkseis kai kalei ta antistoixa programmata(to script einai peripoy etoimo) etsi wste kathe fora poy tha grafw start sth konsola,to shell na trexei to script mou...

elpizw na katalabainete ayto poy zhtaw an kai exw thn entypwsh oti einai arketa dyskolo

tespa,kathe bohtheia eyprosdekth..

Δημοσ.

Εννοείς ότι θέλεις να προσπελάσεις τις παραμέτρους ενός script;

Αυτό γίνεται με $1, $2 κτλ.

Π.χ. αν το start.sh περιέχει την εντολή

echo $1

και δώσεις

./shell.sh file.txt

θα τυπώσει

file.txt

Αν έχεις μεταβλητό αριθμό παραμέτρων, θα χρειαστείς μια for. Κάνε man for και δες εκεί που γράφει για το αστεράκι.

Επισκέπτης
Δημοσ.

wraia..eyxaristw poly ...ayto poy thelw na kanw einai ayto dld poy perigrafei o Dionisos

@alkisg

den me endiaferei na prospelasw tis metablhtes toy script kathws ayto exei if-s(alla mporei na balw kai kana switch) kaita kanei ola mono toy..

@Dionisos

anaferese sto path toy systhmatos...se solaris 5.8 prepei na to balw sto .cshrc? kanw lathos?

Δημοσ.

Νομίζω ότι μπορεί να σε βοηθήσει η awk για να κάνεις αποκοπή το extension του κάθε file.

 

Με κόλλησες τώρα και κάθομαι να το φτιάξω και γω :D

Επισκέπτης
Δημοσ.

gia thn apokopoh toy extention xrhsimopoiw allh entolh...sygkekrimena:

set inpt=$<

set extention=$intp:e

echo $extention

opoy inpt einai h metablhth poy periexei thn eisodo toy xrhsth...allo einai to problhma moy omws..

epanerxomai se ligo..

Επισκέπτης
Δημοσ.

twra exw kollisei se mia blakeia kathoti eixa lathos entypwsh gia to apotelesma ths entolhs grep-n

 

estw oti grafw:

set reslt=grep -n "test" filename.txt

echo $reslt

kai moy emfanizei

2:this is a test

egw omws thelw na krathsw sth metablhth reslt mono ton arithmo 2 kai oxi olo to string(eixa thn entypwsh oti h grep -n kratouse mono ton arithmo...) kamia idea?oso kai na epsaksa sto net lysh de brhka..isws einai arketa ekseidikeymeno ayto poy zhtaw (kai giayto den yparxoyn tutorial)...ti lete paides?

Δημοσ.

H grep -n σου εμφανίζει στην αρχή του αποτελέσματος σε ποια γραμμή βρήκε το string που ζητάς από το input που του έδωσες.

 

Για παράδειγμα αν έχεις ένα αρχείο file.txt με 10 γραμμές και στην 6 γραμμή υπάρχει η λέξη test τότε με την εντολή grep -n "test" file.txt θα σου δώσει σαν αποτέλεσμα 6:κάποιο κείμενο test κάποιο κείμενο.

Δημοσ.

@natural_sgf

Μπορείς να δοκιμάσεις το

set reslt=grep -n "test" filename.txt | cut -c 1

όπου θα πάρεις μόνο τον αρι8μό που θέλεις..

 

edit: Βέβαια αν είναι διψήφιος ο αριθμός θα έχεις πρόβλημα γιατι το -c 1 λέει στην cut να κρατήσει τον 1ο χαρακτήρα.

Οπότε με κάποιο άλλο τρόπο πρέπει να το ελέγχεις αυτό... Αν σκεφτώ κάτι θα σου πώ :)

Επισκέπτης
Δημοσ.

paidia,eyxaristw poly..

paw na dokimasw ayto poy leei o bird twra

Δημοσ.

Λοιπόν για να πάρεις όλον τον αριθμό κάνε αυτό:

set reslt=grep -n "test" filename.txt | cut -d ':' -f 1

 

Ελπίζω να σου δουλέψει...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...