Frage bezüglich "source <script>"

G

Gast1

Hi
Ich habe folgendes script geschrieben:
Code:
#!/bin/bash

cd $HOME
clear
echo -e "\033[1;31m$HOME\033[0m"

Leider funktioniert dieser nur korrekt wenn ich ihn über
Code:
$ source home
aufrufe.
Warum ist mir klar, aber wie kann ich das vereinfachen??
also ohne vorher "source" davor zu packen?

Gibt es einen Befehl, mitdem ich das Verzeichniss des parent-prozesses beeinflussen kann??
 
Hast du dem Script Rechte für die Ausführbarkeit zugeordnet?

Abgesehen davon, dein Home-Verzeichnis ist in der Path-Variable wohl nicht aufgeführt. Da solltest du dein Script in ein Verzeichnis kopieren, das im Suchpfad liegt.
 
??
Natürlich ist es ausführbar.
Das script heißt "home" und liegt in "$HOME/bin", welchens unter SuSE für eigene scripte bereitsteht.

kleines bsp. was Passiert:
Code:
~/ $ cd bin
~/bin/ $ home
*Bildschirm wird gelöscht*
/home/username/
~/bin/ $
~/bin/ $ source home
*Bildschirm wird gelöscht*
/home/username/
~/ $
Das clear und echo wird ausgeführ, und hat auch direkten einfluss auf die shell. das cd beeinflusst aber nur den child-prozess, welcher das script abarbeitet. nach Verlassen des scriptes ist das verzeichniss das selbe, wie vor den ausführen. Und genau dass ist da Problem.
Ich möchte ein script schreiben, das mich nach ~/ bringt ohne, dass ich vorher source vorpacke.
 
Gibt es einen Befehl, mitdem ich das Verzeichniss des parent-prozesses beeinflussen kann??

Ein klares Nein.

Willst du die aktuellen Umgebungsvariablen sofort gültig haben, musst du entweder source nehmen, oder eine neue Subshell öffnen.

Gruß Wolfgang
 
Man kann auch mit "." arbeiten, macht dasselbe wie Source.

Also
Code:
. home
 

Ähnliche Themen

HandbrakeCLI Shell Skript

verzeichniss suche funktioniert nicht

Löschroutine mit Überprüfung

Xubuntu - AVR32-linux crosscompile sqlite

DISPLAY Variable

Zurück
Oben