# date: command not found

## toroneos

Hi, 

ich bin leider etwas ratlos. Ich habe auf einer älteren Gentoo-Kiste ein update auf den aktuellen Portage gemacht. Dabei wurden auch Abhängigkeiten wie z.b. sandbox, coreutils erneuert. Nun habe ich ein bash-script welches relativ simpel ist, aber nicht mehr vom exim ausführbar. für die commandos chmod, cat, date ...etc erhalte ich command not found. wenn ich für die einzelnen Kommandos den vollen Pfad (/bin/cat) angebe, dann funktioniert es problemlos.

In der Usershell kann ich die Kommandos auch ohne vollen Pfad aufrufen und es funktioniert tadellos. 

Wo liegt der Fehler?

----------

## Anarcho

 *toroneos wrote:*   

> Hi, 
> 
> ich bin leider etwas ratlos. Ich habe auf einer älteren Gentoo-Kiste ein update auf den aktuellen Portage gemacht. Dabei wurden auch Abhängigkeiten wie z.b. sandbox, coreutils erneuert. Nun habe ich ein bash-script welches relativ simpel ist, aber nicht mehr vom exim ausführbar. für die commandos chmod, cat, date ...etc erhalte ich command not found. wenn ich für die einzelnen Kommandos den vollen Pfad (/bin/cat) angebe, dann funktioniert es problemlos.
> 
> In der Usershell kann ich die Kommandos auch ohne vollen Pfad aufrufen und es funktioniert tadellos. 
> ...

 

Ich musste auch schon schmerzlich feststellen das sich die Pfade nach einem Update von /usr/bin nach /bin (oder war es umgekehrt?) geändert hatten. In deinem Script wird wahrscheinlich der ganze Pfad stehen und daher läuft das ganze dann schief. Du musst wohl oder übel mittels "which date" usw. rausfinden wo die dinger aktuelle liegen und in dem Script anpassen.

----------

## toroneos

Das ist ja gerade das Verwirrende. Ich hatte zuvor z.b. date mit folgender Zeile drin:

`date XXXXX`

----------

## Anarcho

 *toroneos wrote:*   

> Das ist ja gerade das Verwirrende. Ich hatte zuvor z.b. date mit folgender Zeile drin:
> 
> `date XXXXX`

 

Dann sind in der PATH Variable nicht beide Pfade drin sondern nur der alte.

----------

## toroneos

hmmm...die /etc/profile sollte doch für alle gelten

```

# /etc/profile:

# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/profile,v 1.23 2003/04/29 21:23:18 azarah Exp $

if [ -e "/etc/profile.env" ]

then

   . /etc/profile.env

fi

# 077 would be more secure, but 022 is generally quite realistic

umask 022

if [ `/usr/bin/whoami` = 'root' ]

then

   # Do not set PS1 for dumb terminals

   if [ "$TERM" != 'dumb'  ] && [ -n "$BASH" ]

   then

      export PS1='\[\033[01;31m\]\h \[\033[01;34m\]\W \$ \[\033[00m\]'

   fi

   export PATH="/bin:/sbin:/usr/bin:/usr/sbin:${ROOTPATH}"

else

   # Do not set PS1 for dumb terminals

   if [ "$TERM" != 'dumb'  ] && [ -n "$BASH" ]

   then

      export PS1='\[\033[01;32m\]\u@\h \[\033[01;34m\]\W \$ \[\033[00m\]'

   fi

   export PATH="/bin:/usr/bin:${PATH}"

fi

unset ROOTPATH

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]

then

   export INPUTRC="/etc/inputrc"

fi

# Extract the value of EDITOR

[ -z "$EDITOR" ] && EDITOR="`. /etc/rc.conf 2>/dev/null; echo $EDITOR`"

[ -z "$EDITOR" ] && EDITOR="`. /etc/conf.d/basic 2>/dev/null; echo $EDITOR`"

[ -z "$EDITOR" ] && EDITOR="/bin/nano"

export EDITOR

```

ich habe rausgefunden, das die mailpipes von einem bestimmten user bearbeitet werden. anscheinend hat vielleicht noch ein falsches profil? wie kann ich das ändern?

----------

## Anarcho

Nicht bei jedem "starten" wird auch eine Shell mit /etc/profile benutzt. Daher würde ich dort einfach den kompletten Pfad einstellen oder im Script ganz oben den Pfad entsprechend erweitern.

----------

## toroneos

Vielen Dank Anarcho,

aber könnte ich es nicht provozieren, dass das Script die /etc/profile nutzt? Wenn ich am Anfang source /etc/profile schreibe, würde das funktionieren?

----------

## Anarcho

 *toroneos wrote:*   

> Vielen Dank Anarcho,
> 
> aber könnte ich es nicht provozieren, dass das Script die /etc/profile nutzt? Wenn ich am Anfang source /etc/profile schreibe, würde das funktionieren?

 

Das würde sicherlich auch gehen, aber da hast du ja ne ganze Menge Balast mit drin. Du brauchst ja nur den PATH Teil.

----------

## toroneos

Das stimmt Anarcho, aber reicht es nicht einmalig? Sprich wenn ich das Script einmal ausführe, sollte es doch für den nachfolgenden Aufrufe nicht mehr nötig sein...oder?

----------

## Anarcho

 *toroneos wrote:*   

> Das stimmt Anarcho, aber reicht es nicht einmalig? Sprich wenn ich das Script einmal ausführe, sollte es doch für den nachfolgenden Aufrufe nicht mehr nötig sein...oder?

 

Deine Annahme ist falsch. Wenn du /etc/profile lädst dann hast du damit nur die aktuellen Environment Variablen gefüttert (ruf mal env in der bash auf). Beim verlassen des Scripts sind diese Änderungen wieder nichtig.

----------

## toroneos

hmmm, dann gibt es gar keine Möglichkeit durch einen Aufruf die Variablen dauerhaft zu ändern?

----------

## Finswimmer

 *toroneos wrote:*   

> hmmm, dann gibt es gar keine Möglichkeit durch einen Aufruf die Variablen dauerhaft zu ändern?

 

export test=12 setzt es zumindest in der aktuellen Umgebung dauerhaft.

Alles andere musst du beim Starten deiner Shell immer laden.

Tobi

Ps.

export test=12

test=12 

machen beide dasselbe?!

----------

## toroneos

 *Finswimmer wrote:*   

> 
> 
> export test=12 setzt es zumindest in der aktuellen Umgebung dauerhaft.
> 
> Alles andere musst du beim Starten deiner Shell immer laden.
> ...

 

nein, machen nicht beide dasselbe, denn export test ist ein globaler aufruf, wenn ich mich recht entsinne.

----------

## Polynomial-C

```
export test=12
```

 gibt die Variable "test" und ihren Inhalt auch an Kindsprozesse (subshells) der shell weiter. Bei 

```
test=12
```

 passiert das nicht.

----------

## Finswimmer

 *Polynomial-C wrote:*   

> 
> 
> ```
> export test=12
> ```
> ...

 

Aber nicht an andere existierende Shells? Dann hab ichs durchschaut.

Tobi

----------

## sirro

Genau. Die werden nur an Kind-Prozesse weitergegeben.

Wäre auch nicht so prikelnd wenn jedes export in irgendeinem ganz speziellen Skript alle Prozesse des aktuellen Users mit dem neuen Wert füttern würde.  :Smile: 

----------

