![]() |
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 |
| csh niet om te bellen naar een 2 embedded csh script | pollsizer | Programmeren en Shell Scripting | 1 | 06-07-2008 01:22 PM |
| Shell script - Als --- fi voorwaarde | yog_chavan | Programmeren en Shell Scripting | 4 | 05-07-2008 09:46 |
| hulp nodig met beproevingsomstandigheden in shell script | pieman8080 | Programmeren en Shell Scripting | 9 | 09-11-2006 05:20 PM |
| UNIX-script niet .... | khan1978 | UNIX for Advanced & Expert Gebruikers | 1 | 12-05-2005 01:28 PM |
| OR'ing voorwaarde in script | vino | Programmeren en Shell Scripting | 9 | 04-21-2005 08:34 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
IF conditie niet in een SSH-script
Hoi,
Ik ben ssh-in naar een externe machine (ubuntu) en probeert uit te voeren in een klein script there.The script ziet er als volgt uit: Code:
ssh user@ubuntu <<EOF cd ~/test ls -l echo "Continue counting files starting with a`s ?" read answer if [ "$answer" = y ] then ls -l a* else exit fi EOF Met andere woorden elke eenvoudig script dat ik gebouwd met een test voorwaarde in een SSH-script lijkt te mislukken. Iemand ideeën? En in het algemeen, is er een regel die ik moet u er rekening mee houden bij het uitvoeren van een test conditie in een externe machine via een SSH-script? Laatst gewijzigd door rubionis; op 04.15.2008 05:42 PM.. Reden: code tags toegevoegd |
|
||||
|
Ja, ik vergat te zeggen heb ik #! / Bin / bash aan het hoofd van het script.
En ik eigenlijk niet terug vinkje in het script, (Ja ik ben me bewust van de speciale tekens conflicten in een script), heb ik net een `s als voorbeeld. Zeg ik dat alle speciale tekens in de SSH-script, heeft het script kijken OK? Dus mijn vraag is, indien er sprake is van een bekend conflict, wanneer er gebruik beproevingsomstandigheden in een SSH-script. Waar ik ben niet op de hoogte van, of het in andere woorden: wat is een algemeen model van de test staat in een SSH-script. Of ben ik ontbreekt iets in mijn script? Bedankt voor uw snelle antwoord. |
|
||||
|
Inderdaad, je hebt een open-end single-quote die moet worden gesloten.
Maar ... je hebt grotere problemen dan dat, want dit is een * afstandsbediening * script. Dus uitspraken zoals deze: Code:
ssh HOST <<EOF
echo $HOSTNAME
EOF
Code:
ssh HOST <<\EOF
# the backslash above will prevent the Variables below from being evaluated
echo $HOSTNAME
EOF
Code:
cat <<EOF > /tmp/test.script
# this is a temporary location
echo $VALUE1 \$VALUE1
EOF
|
|
||||
|
Dankzij gus2000,
De separator \ EOF heeft de truc met betrekking tot alle variabelen in de SSH-script. Een andere nuttige info in gedachten te houden! (Ik weet het, ik moet voorzichtig zijn met de variabelen, BTW Ik gebruik een langere awk commando in het script en ik ontsnapte alle met $ \ $.) Maar helaas de IF-test niet opnieuw: Citaat:
Dus mijn VOORNAAMSTE vraag blijft de IF-test. In andere hoe zou ik schrijf een IF-test (of een TEST cmd in het algemeen) in SSH-script zonder storingen? Laatst gewijzigd door rubionis; op 04.15.2008 05:58 PM.. Reden: code tags |
|
||||
|
Heeft U nog vragen naar een antwoord op uw lees verklaring? Ik denk dat daar SSH is niet-interactieve (geen controlerende terminal) U kunt niet een terminal zoals sessie, ofwel U moet werken met iets verwachten of bewaren het script lokaal en alleen "verzamelen" ongeacht info Je moet uit de externe gastland en verwerken van het lokaal.
Maak een lokale script en lopen het lokaal: Citaat:
/ Lakris |
|
||||
|
Citaat:
Ik heb deze beet me voor sommige programma's die willen een terminal voor het verzenden van gegevens te ... Root krijgt email garbage dan. Citaat:
Zoals: ssh user @ ubuntu "ls-l / test" echo "Doorgaan tellen bestanden die beginnen met een` s? " lees antwoord if [ "$ antwoord" \u003d y] dan ssh user @ ubuntu "ls-la *" fi Het is niet zo efficiënt met multple teken-ons, maar de logica is lokaal. De enige uitzondering is als er grote hoeveelheden gegevens te filteren (met een grep ofzo) - ik probeer het en leuk op het netwerk. |
![]() |
| Bladwijzers |
| Labels |
| grep of, linux, ubuntu |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|