我正在尝试按如下方式创建别名,其中app_folder是顶级文件夹,appX是可执行文件:
alias app_folder='/tmp/app'
alias app1='app_folder/app1'
alias app2='app_folder/app2'
alias app_output='cat app_folder/log.txt'
当我在终端中呼叫时,我会得到这样的结果:
bash: app_folder/app1: No such file or directory
cat: app_folder/log.txt: No such file or directory
我尝试了所有不同的方法,但没有一种方法有效:
app1="$(app_folder)"'/app1'
app1='`app_folder`/app1'
这样可以使用别名,如果没有,还有其他方法吗?
答案 0 :(得分:5)
我想你想要这样的东西:
APP_FOLDER="/tmp/app"
alias app1="$APP_FOLDER/app1"
alias app2="$APP_FOLDER/app2"
alias app_output="cat $APP_FOLDER/log.txt"
如果定期更改,您可以在文件中使用它,例如,更改别名指向的文件夹:
APP_FOLDER="$1"
alias app1="$APP_FOLDER/app1"
alias app2="$APP_FOLDER/app2"
alias app_output="cat $APP_FOLDER/log.txt"
因此,如果这是在“aliastest”文件中,您可以这样做:
. aliastest /tmp/app
你会得到的,例如:
$ alias | grep app
alias app1='/tmp/app/app1'
alias app2='/tmp/app/app2'
alias app_folder='/tmp/app'
alias app_output='cat /tmp/app/log.txt'
这是你要找的吗?或者,您可以使用单引号在别名中包含变量,例如:
alias app1='$APP_FOLDER/app1'
alias app2='$APP_FOLDER/app2'
alias app_output='cat $APP_FOLDER/log.txt'
然后,每当您设置APP_FOLDER变量时,您的别名都会使用它。