在脚本中,我想创建一个别名来执行这样的脚本:
$ devbox
所以脚本包含这个:
#!/bin/bash
shopt -s expand_aliases
alias devbox="./devbox"
echo "Done"
但它不起作用:
zsh: command not found: devbox
编辑:
如果我想提出一个论点"别名"到我的脚本($。/ devbox别名)来设置" devbox"别名?
答案 0 :(得分:1)
您想在脚本上调用source
。
$ cat devbox
#!/bin/bash
echo "Hello from devbox"
$ cat setAlias.sh
#!/bin/bash
alias devbox="./devbox"
echo "Done"
$ source ./setAlias.sh
Done
$ devbox
Hello from devbox
$
答案 1 :(得分:1)
首先,您似乎使用zsh
作为shell,但是您在bash
中编写了脚本。其次,更重要的是,脚本是在子进程中执行的,因此脚本中定义的任何别名仅在该脚本中可见。
如果要在当前shell的上下文中执行脚本,则必须source
而不是执行它:
source my_script_+with_alias_definitions
或
. my_script_+with_alias_definitions