
Hier ist ein Teil meiner.bashrc
alias my_command="my_command -1 -2 -3"
und es ist mein Shell-Skript
#!/bin/sh
my_command blah blah blah
Es tritt ein Fehler auf
./aa: line 2: my_command: command not found
Wie definiert man also Aliase für den Befehl richtig?
Antwort1
Zwei Dinge, die in interaktiven Shells passieren (Erweiterung von Aliasnamen und Beschaffung Ihrer .bashrc
), passieren nicht, wenn Sie ein Skript ausführen. Sie könnten versuchen, Folgendes oben in Ihr Skript einzufügen:
source ~/.bashrc # To get the alias
shopt -s expand_aliases # To allow alias expansion in your script
Sie könnten eine Umstellung mycommand
auf eine Shell-Funktion in Erwägung ziehen. Dann müssten Sie die Alias-Erweiterung in Ihrem Skript nicht aktivieren.
mycommand () {
my_command -1 -2 -3 "$@"
}
Antwort2
alias my_command="/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java"
Nach diesem Typ
source .bashrc
source .bashrc
Erhalten Sie nach der Eingabe eine Fehlermeldung?
Antwort3
Wenn Sie eine bestimmte Java-Version verwenden möchten, möchten Sie die Variable möglicherweise entsprechend definieren JAVA_HOME
und festlegen PATH
.
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/bin/java
export PATH=$PATH:export PATH=$PATH:/usr/java/jdk1.5.0_07/bin
Wenn es nur darum geht, einen Alias festzulegen, ist die von Ihnen verwendete Syntax korrekt (natürlich mit einigen gültigen Befehlen).
alias lm="ls -l"