Archiv verlassen und diese Seite im Standarddesign anzeigen : andere ausgabe ob konsole oder script
MatheStein
02.09.09, 15:40
hey leute hab ein kleines problem und zwar bekomme ich wenn ich
set | grep -oi [a-z][a-z]*=[a-z0-9][a-z0-9]* | sort
in die konsole eingebe ein anderes ergebnis als wenn ich ein stinknormales skript mit den zeilen
#! /bin/bash
set | grep -oi [a-z][a-z]*=[a-z0-9][a-z0-9]* | sort
ausführe.
wisst ihr woran das liegen könnte?
hab die shebang zeile in dem script sogar mal bei einem testdurchlauf weggelassen und das problem besteht weiterhin
gruß
also hier:
root@web1 ~]# set | grep -oi [a-z][a-z]*=[a-z0-9][a-z0-9]* | sort > 1
[root@web1 ~]# ./test.sh > 2
[root@web1 ~]# diff 1 2
9d8
< COLUMNS=129
11d9
< consoletype=pty
22d19
< HISTFILESIZE=1000
28d24
< LINES=47
33d28
< MAILCHECK=60
42c37
< PPID=26576
---
> PPID=26582
46c41
< SHLVL=1
---
> SHLVL=2
kein Unterschied, der nicht logisch wäre...
MatheStein
02.09.09, 16:00
erstell mal paar variablen in der konsole. die zeigt das script nicht an
sowas wie a=5 oder so
Und was wundert dich daran?
-> man export
MatheStein
02.09.09, 16:05
angenomme ich erstelle eine variable a=5. dann müssten doch sowohl
set | grep -oi [a-z][a-z]*=[a-z0-9][a-z0-9]* | sort
in der konsole sowie das script die variable mit ausgeben oder?
bin noch anfänger sollte ich glaub ich mal dazu erwähnen :)
ganz allgemein gibt doch ein script seine zeilen nach und nach in die konsole ein oder nicht?
gruß
2x nein.
Wenn Du eine Variable erstellst ist die in der aktuellen Shell existent. In anderen ist sie nicht bekannt - außer, du exportierst sie. Dann ist sie in der aktuellen Shell und deren Kindern bekannt.
Schau Dir mal die entsprechenden Kapitel im Advanced Bash Scritping Guide an (Gültigkeitsbereich von Variablen)...
Und ein Script gibt nicht seine Befehle in der Konsole ein. Die Ausführung übernimmt komplett von der Konsole unabhängig der definierte Interpreter / Parser / ...
MatheStein
02.09.09, 16:32
wenn ich das script in der konsole ausführe, wird das script dann in einer tochtershell gestartet? weil auch mit export gibt das script die exportierte variable nicht aus :(
und zu der sache mit dem script:
wenn ich ein script von der bash interpretieren lasse, bekomme ich das selbe ergebnis als wenn ich manuell die zeilen nach und nach in eine bashkonsole eingebe oder?
vielen dank schonmal für deine hilfen :)
gruß
wenn ich das script in der konsole ausführe, wird das script dann in einer tochtershell gestartet? weil auch mit export gibt das script die exportierte variable nicht aus :(
bei mir gibt's die Variable aus -> was machst Du exakt und wie und in welcher Reihenfolge?
und zu der sache mit dem script:
wenn ich ein script von der bash interpretieren lasse, bekomme ich das selbe ergebnis als wenn ich manuell die zeilen nach und nach in eine bashkonsole eingebe oder?
nicht zwingend.
MatheStein
02.09.09, 16:40
hey
mit source klappt das auch toll, dann führt der das script direkt in der selben umgebung aus. hab ich gerade in einem buch bei google gefunden, aber kennst du sicher schon :D
mit export hab ich das folgendermaßen gemacht:
zzzz=3
export zzzz
(hier habe ich dann das skript ausgeführt aber zzzz wurde nicht angezeigt)
zu der sache mit dem script:
in welchen fall hat man denn unterschiedliche ergebnisse?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.