我正在尝试为应用程序创建一个别名以便于访问,而不是转到目录并运行它。
alias cpanel-run='"$(cd /home/ian/projects/electron/cpanel-linux-x64/)" "$(cpanel)"'
但它只显示
bash: ./cpanel: No such file or directory
Command '' not found, but can be installed with:
sudo apt install bpfcc-tools # version 0.8.0-4, or
sudo apt install mailutils-mh # version 1:3.5-2build1
sudo apt install mmh # version 0.4-2
sudo apt install nmh # version 1.7.1-4
最佳答案
您实际上是否需要与可执行文件位于同一目录中?如果没有,请执行以下操作:
alias cpanel-run='/home/ian/projects/electron/cpanel-linux-x64/cpanel'
如果您确实需要在同一目录中,请改用:
alias cpanel-run='cd /home/ian/projects/electron/cpanel-linux-x64/ && ./cpanel'
(
&&
告诉 shell 运行第一个( cd
)命令,然后只有在成功时才运行第二个。)您的原始版本不起作用的原因是您正在使用
$()
不恰本地。什么$()
确实是将其内容作为子进程运行,收集输出,并将其用作命令行的一部分。因此,您的版本运行 cd
命令,它成功更改到目录,但由于它作为子进程运行,因此对您的 shell 或任何其他进程没有影响。它也不会产生任何输出。然后其他$()
尝试运行 cpanel
(实际上是 ./cpanel
吗?)在不同的子进程中,因为它不存在而失败(产生第一条错误消息),并且也没有产生输出。然后,根据这两个子进程的(空)输出,shell 尝试运行命令 "" ""
,因为空字符串不是有效命令而失败。
关于bash - 如何正确使用 .bashrc 并运行应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58021574/