我在 Ubuntu 机器上安装了一款应用/usr/local/MYPROGRAM/bin/myapp
。当我尝试myfn
在 bash 脚本中使用时mybashscript.sh
,它给出错误,提示myfn
未找到命令,但如果我myfn
从普通终端窗口调用,它就可以正常工作,因为它在~/.bashrc
文件中找到。我如何myfn
从 bash 脚本调用mybashscript.sh
?
这是mybashscript.sh
:
#!/bin/bash -i
alias brc='source ~/.bashrc'
source /usr/local/MYPROGRAM/bin/myapp
#exec bash
echo "******************pathhhhhhhh************"
echo $PATH
echo "******************pathhhhhhhh************"
/usr/local/MYPROGRAM/bin/myapp
这是我运行时的输出./mybashscript.sh
:
bash: /bin/realbin/myapp: No such file or directory
******************pathhhhhhhh************
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
******************pathhhhhhhh************
/usr/local/MYPROGRAM/bin/myapp: 3: /usr/local/MYPROGRAM/bin/myapp: /bin/realbin/myapp: not found
答案1
为了使该函数对您的脚本可见,您需要使用以下命令将文件“源”到您的脚本中:
source /usr/local/MYPROGRAM/bin/myfn
或者:
. /usr/local/MYPROGRAM/bin/myfn
这会将文件内所有定义的函数、变量和常量包含到您的脚本中。