Linux 15.036 Themen, 107.107 Beiträge

einfache wert zuweisung unter linux bash geht nicht

robert_W / 8 Antworten / Baumansicht Nickles

Hallo,

ich versuchte gerade eine Weile

bash:#testvar=date +%H

Mit allen möglichkeiten {} "\'\'" \'\' usw. nur leider steht in der variablen testvar dann nicht die aktuelle Zeit.
Hat Irgendjemand einen genialen Einfall. Danke im Voraus.

bei Antwort benachrichtigen
Klaus_T robert_W „einfache wert zuweisung unter linux bash geht nicht“
Optionen

Du musst Backsticks (`) nehmen. Also:
testvar=`date +%H`
Bye, Klaus

bei Antwort benachrichtigen
robert_W Klaus_T „Du musst Backsticks nehmen. Also: testvar date H Bye, Klaus“
Optionen

Hi Klaus,

bei mir gibt dann ein echo $testvar

date +%H

aus (den String und nicht die Uhrzeit).
Ich würde aber gerne das er das Ergebnis dieses Programmaufrufs in der Variablen testvar speichert. Oder habe ich da die Shellprogrammierung falschverstanden. Ansonsten muss ich es mit Perl oder PHP machen.

bei Antwort benachrichtigen
Klaus_T robert_W „Hi Klaus, bei mir gibt dann ein echo testvar date H aus den String und nicht die...“
Optionen

Dann machst irgendetwas verkehrt:
[nathan:klaus]~$ testvar=`date +%H`
[nathan:klaus]~$ echo $testvar
13
[nathan:klaus]~$
Du hast dann keine ` genommen, sondern '. Der Backstick liegt rechts neben der ? Taste.
Klaus

bei Antwort benachrichtigen
REPI Klaus_T „Dann machst irgendetwas verkehrt: nathan:klaus testvar date H nathan:klaus echo...“
Optionen

Stimmt, so gehts auch !!

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
robert_W Klaus_T „Dann machst irgendetwas verkehrt: nathan:klaus testvar date H nathan:klaus echo...“
Optionen

Vielen dank.

In den Büchern, und Manuals sieht das aus wie ein normales '.

Vielen Dank. Du hast mir verdammt viel Arbeit erspart.

bei Antwort benachrichtigen
REPI robert_W „einfache wert zuweisung unter linux bash geht nicht“
Optionen

Hallo Robert !
Das sollte so aussehen :

#!/bin/sh
testvar=$(date +%H)
echo $testvar


Gruß



repi

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
Bundeskanzler REPI „Hallo Robert ! Das sollte so aussehen : !/bin/sh testvar date H echo testvar...“
Optionen

> #!/bin/sh
> testvar=$(date +%H)

Noch ein kurzer Hinweis:
Das klappt unter einer "echten" Bourne-Shell nicht, kompatibel ist nur die Version mit den Backticks. Wenn /bin/sh aber nur ein link auf bash ist, merkt man den Unterschied natürlich nicht. Korrekterweise hättest du #!/bin/bash schreiben sollen.

Bundeskanzler

bei Antwort benachrichtigen
REPI Bundeskanzler „ !/bin/sh testvar date H Noch ein kurzer Hinweis: Das klappt unter einer echten...“
Optionen

O.K. sh ist bei mir (SUSe 7.0 Distri) ein Link auf bash !!

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen