bash - 如何正确使用 .bashrc 并运行应用程序?

标签 bash ubuntu

我正在尝试为应用程序创建一个别名以便于访问,而不是转到目录并运行它。

    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/

相关文章:

bash - 在一个命令中创建临时文件并将输出重定向到它

java - Java需要设置哪些环境变量?

c - 套接字错误 : connection refused

php - shell_exec 不运行某些 shell 命令

linux - 将次要版本从内核提取到 bash 变量

bash - 我如何编写用于检查网站是否在线的 shell 脚本

linux - Crontab 抛出错误

bash - 为什么 'if [ $# > 0 ] ; then' 错误?

php - Apache/xampp 无法在 ubuntu 端口 80 上运行

mysql - 在没有任何第三方库的情况下从 MySQL 触发 shell 脚本