![]() |
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Bash Shell sh Shell in een script | saurabh84g | Programmeren en Shell Scripting | 8 | 08-29-2008 05:51 |
| verschillende shell csh bash | ajp7701 | Programmeren en Shell Scripting | 1 | 04-18-2008 04:19 PM |
| C shell plaats van bash | ajp7701 | Programmeren en Shell Scripting | 0 | 03-18-2008 04:15 PM |
| Bash Shell | BG_JrAdmin | Linux | 1 | 08-07-2006 01:56 PM |
| Bash shell ... | VijayHegde | Programmeren en Shell Scripting | 2 | 06-06-2006 08:09 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
bash-shell leidingen
Hallo allemaal,
Ik ben nieuw voor bash. Ik probeer een sub-string van een variabele te krijgen in een shell script. Terwijl proberen te doen dat ik de volgende foutmelding: -------------------------------------------------- ---------------------- OHOME: / AAA / BBB / product / eee . / t.sh: lijn 6: / AAA / BBB / product / eee: Onbekend bestand of map Oracle Base: -------------------------------------------------- ---------------------- Hier is de code: -------------------------------------------------- ---------------------- #! / bin / sh OHOME \u003d / AAA / BBB / product / eee echo "OHOME:" $ OHOME O_BASE \u003d echo $ OHOME | awk-F "/" '(for (i \u003d 2; i <\u003d NF; i + +) (if ($ i \u003d\u003d "product") (exit;) a \u003d een "/" $ i ;)) ' echo "Oracle Base:" $ O_BASE -------------------------------------------------- ---------------------- Ik ben zeer verbaasd. Omdat het lijkt niet te willen "$ OHOME echo" Ik heb geprobeerd een aantal dingen als omsluit tussen haakjes, enkel / dubbele aanhalingstekens, enz. Ik krijg nog steeds deze fout. Ik kan niet lijken te vinden in de syntaxis van het boek of Google ![]() Ziet er heel simpel, maar ik zit vast op deze uren. Misschien deskundigen kan hier guide me. Hier is onze Linux-versie: Linux 2.6.9-<name> 67.0.20.ELsmp # 1 SMP Wed Jun 18 12:40:47 EDT 2008 i686 i686 i386 GNU/Linux Rocky. |
|
||||
|
Uw commando betekent OHOME \u003d echo en terwijl die opdracht is ingevoerd, voert u het commando $ OHOME wat natuurlijk is geen geldig commando.
Voor het vastleggen van de output van een commando, stak het in backticks (96 ASCII, geen vaste rechte aanhalingstekens): Code:
O_BASE=`echo $OHOME | awk -F"/" '{for(i=2;i<=NF;i++) {if($i=="product"){exit;} a=a"/"$i; }} '`
Als uw reservoir $(...) in plaats van backticks `...` dat misschien beter leesbaar is, hoewel nominaal minder draagbaar tot legacy Bourne shell. Uw awk script lijkt niet iets te doen met de een deel, als je bedoelt het vast te leggen, moet je het afdrukt. Om strippen alles na het eerste exemplaar van /product / U kunt gebruik maken van variabele substitutie van de shell mechanisme: Code:
O_BASE=${OHOME%/product/*}
Laatst gewijzigd door tijdperk; op 08.28.2008 02:56 PM.. Reden: Variabel vervanging opmerkingen |
|
||||
|
Ahhh .. Thanks a lot. Ik vergat de `s als ik het over gekopieerd van HP. Het werkt met zowel `` en $(..)
Uw tweede suggestie "O_BASE \u003d $ (OHOME% / product / *)" werkt perfect zonder alle extra's. Ik kan niet begrijpen dat een - de noodzaak om een goed boek dat syntaxis leren te krijgen. Op het derde onderdeel, de manier waarop dit werkt is awk, neemt zij het deel voor de eerste schuine streep als een veld: "/ AAA / BBB / product / EEE". In deze, AAA is het tweede veld per awk en BBB is het derde veld. Probleem opgelost. Thanks a lot for your help. |
|
||||
|
Citaat:
Daarom moet u liever gebruik maken van de $(...) stijl als u niet van plan om het script te draaien ongewijzigd op AIX of SunOS / sh Solaris '. |
|
|||||
|
dit Referentie Kaarten aanhangsel van de Advanced Bash Scripting Guide (http://tldp.org/LDP/abs/html/) Is een zegen voor mij 'omdat ik nooit kan herinneren de juiste syntax voor string snijden.
|
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|