date im Shell Script

Bash, Shell, PHP, Python, Perl, CGI
maske
Posts: 53
Joined: 2003-10-29 12:16

date im Shell Script

Post by maske » 2005-07-30 16:50

Hallo,

ich habe ein kleines Shell Script test.sh erstellt mit chmod 700:

#!/bin/bash
datum='date'
echo Datum: $datum


Wenn ich diese jetzt mit "./test.sh" aufrufe wird folgendes ausgegeben:

Datum: date

Nicht aber das Datum, wie gewollt. Wodran liegt das ?

ml-
Posts: 6
Joined: 2005-04-22 19:44
Location: Hannover

Re: date im Shell Script

Post by ml- » 2005-07-30 17:01

Code: Select all

#!/bin/bash
datum=`/bin/date`
/bin/echo "Datum: $datum"

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: date im Shell Script

Post by Roger Wilco » 2005-07-30 17:17

Code: Select all

#!/bin/sh
datum=$(/bin/date)
/bin/echo "Datum: ${datum}"

User avatar
Joe User
Project Manager
Project Manager
Posts: 11604
Joined: 2003-02-27 01:00
Location: Hamburg

Re: date im Shell Script

Post by Joe User » 2005-07-30 17:24

Code: Select all

#!/bin/sh
/bin/echo "Datum: `/bin/date`"
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

maske
Posts: 53
Joined: 2003-10-29 12:16

Re: date im Shell Script

Post by maske » 2005-07-30 17:32

Es lag an den Zeichen:

Ich hatte 'date' statt `date`. Aber wie bekomme ich bloss dieses Zeichen hin "`" ?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11604
Joined: 2003-02-27 01:00
Location: Hamburg

Re: date im Shell Script

Post by Joe User » 2005-07-30 17:37

Nimm <shift>+<´> (zwischen <Ã?> und <backspace>)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

darki
Posts: 36
Joined: 2003-11-25 12:57
Location: Karlsruhe

Re: date im Shell Script

Post by darki » 2005-08-01 11:26

Ma ne ganze doofe OT-Frage
/bin/echo
Absolut Pfad-Fanatiker oder welchen Vorteil hat der absolute Pfad bei einem echo? :roll:

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: date im Shell Script

Post by captaincrunch » 2005-08-01 11:38

Gute Frage, da "echo" ein Bash-builtin ist. ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

tcs
RSAC
Posts: 134
Joined: 2003-11-16 12:05
Location: Woodcastle

Re: date im Shell Script

Post by tcs » 2005-08-01 11:40

Code: Select all

tcs@horus ~ $ export $PATH=/home/tcs/bin
tcs@horus ~ $ /bin/echo "/bin/rm -rf ~/*" > /home/tcs/bin/echo
tcs@horus ~ $ echo
:wink:

Cheers

tcs

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: date im Shell Script

Post by captaincrunch » 2005-08-01 13:36

1. Es heißt immer noch export PATH=BLA. ;)

2.

Code: Select all

chris@foobar:~$ export PATH=/home/chris/bin
chris@foobar:~$ /bin/echo "/bin/echo doof" > /home/chris/bin/echo
chris@foobar:~$ echo

chris@foobar:~$
Und nu? 8O

Auch wenn ich ja normalerweise auch immer darauf poche, dass in Shellscripten mit absoluten Pfaden gearbeitet wird: Shell-builtins haben grundsätzlich vorrang vor den in $PATH enthaltenen Binaries. Im Falle von echo würde ich mir da also keine sooo großen Sorgen machen. ;)

Disclaimer: Ich lasse mich wie immer liebend gerne eines Besseren belehren. ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

tcs
RSAC
Posts: 134
Joined: 2003-11-16 12:05
Location: Woodcastle

Re: date im Shell Script

Post by tcs » 2005-08-01 15:29

Ungetestetes Beispiel, mußte natürlich eine Falschaussage sein, in diesem Fall geschieht mir das absolut Recht :oops:

Worauf ich mit meinem schlechten Beispiel hinauswollte:
Explizite Pfadangaben zu verwenden bewahrt einen davor versehentlich ein anderes Programm als beabsichtigt auszuführen. Es braucht ja nur ein anderes Script mit gleichem Namen als erstes im Suchpfad (Ja, auch export usw. wurde hastig und ohne Kontrolle von mir gepostet) aufzutauchen und man startet unbeabsichtigterweise dieses anstelle des beabsichtigten, später gelisteten.

Von einem Beispiel sehe ich unter den gegebenen Umständen/bereits von mir gepostetem Schwachsinn lieber ab :wink:

Cheers

tcs

captaincrunch
Userprojekt
Userprojekt
Posts: 7225
Joined: 2002-10-09 14:30
Location: Dorsten

Re: date im Shell Script

Post by captaincrunch » 2005-08-01 15:33

Hey, was das angeht, bin ich doch voll und ganz bei dir. Das bisschen Haarspalterei musste jetzt aber ganz einfach mal sein. ;) Immerhin ist es jetzt noch mal ganz gut erklärt, warum man im Normalfall drauf achten sollte. Es muss aber halt auch Ausnahmen geben, um die Regel zu bestätigen. :-D
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc

tcs
RSAC
Posts: 134
Joined: 2003-11-16 12:05
Location: Woodcastle

Re: date im Shell Script

Post by tcs » 2005-08-02 14:13

Natürlich muß Haarspalterei sein, erstens ist's meistens wirklich amüsant, zweitens bringt es einen auf den Boden der Tatsachen zurück und drittens erfährt/liest man oft genug daß Server aufgrund haarkleiner Unterschiede zu einer wirklich sicheren Konfiguration gehackt wurden :wink:

Daß der Befehl echo ein bash-builtin ist war mir nicht bewußt, spätestens beim testen meines Beispiels wäre ich aber drauf gekommen - wie im Weckposting von CC gut illustriert wurde :lol:

So, das war jetzt mein halbes Haar dazu :-D

Cheers

tcs