In Terminal kann ich also den Befehl "trace" eingeben und die flashlog.txt in der Konsole anzeigen. Ich kann auch den Befehl "cleartrace" eingeben und die flashlog.txt wird gelöscht. Diese arbeiten großartig.

Wenn ich jedoch ein neues Bash-Skript mit folgendem erzeuge, erhalte ich die Fehlermeldung "cleartrace: Befehl nicht gefunden":

#!/bin/bash cleartrace cp -v -f ActivityLauncher.swf ../launchers/addu02l05_launcher_1.swf open "/Applications/Adobe Flash CS4/Players/Flash Player.app" ./test.swf  

Warum funktioniert ein Alias ​​im Terminal, aber nicht, wenn er aus einem Skript aufgerufen wird? (Wie kann ich das beheben?)

1

2 Antworten auf die Frage

4
KeithB

Dies liegt daran, dass bash nur ~ / .bash_profile für interaktive Shells liest. Verschieben Sie Ihre Alias-Definitionen nach ~ / .bashrc und es sollte funktionieren. In der INVOCATION-Sektion der bash-Manpage finden Sie weitere Informationen zur Funktionsweise.

Das ist nicht wahr. http://unix.stackexchange.com/questions/1496/why-doesnt-my-bash-script-recognize-aliases Tyilo vor 12 Jahren 1
2
Dennis Williamson

Die Bash-Info-Datei sagt:

Für fast jeden Zweck werden Shell-Funktionen gegenüber Aliasnamen bevorzugt.

Funktionen können zum einen exportiert werden.

Funktionen können auch andere Funktionen aufrufen! (Aliase können nicht) sixtyfootersdude vor 14 Jahren 0

Verwandte Probleme