从 ubuntu 中的八度调用 bash 脚本的问题
Problems with calling bash scritpt from octave in ubuntu
我正在尝试 运行 一个调用八度外程序的脚本。从终端调用时,该脚本工作正常。我的问题是脚本的 shebang 部分似乎没有调用 bash。例如,如果我编写以下脚本:
#! /bin/bash
echo $SHELL
whoami
当我从八度调用这个脚本时
system('bash myscript.bash')
我得到了:
>> /bin/sh
>> user
因此,当我尝试 运行 来自 Octave 的实际脚本(不是上面的脚本)时,我收到“找不到命令”错误。
知道我在这里做错了什么吗?
请尝试
system('./myscript.bash')
或
system('/bin/sh /root/path/to/myscript.bash')
并在您的 bash 脚本中使用您程序的绝对路径,或者您可以将您的程序放在 /bin
目录中
路径示例:
/root/path/to/myscript.bash
发现问题是我安装了带有 flatpack 的 Octave,它创建了自己的环境或其他东西,因此无法真正看到 /bin 中的功能。所以如果你有类似的问题,比如在 Octave 命令行和终端中没有相同的功能:
flatpak uninstall octave
sudo apt-get install octave
我正在尝试 运行 一个调用八度外程序的脚本。从终端调用时,该脚本工作正常。我的问题是脚本的 shebang 部分似乎没有调用 bash。例如,如果我编写以下脚本:
#! /bin/bash
echo $SHELL
whoami
当我从八度调用这个脚本时
system('bash myscript.bash')
我得到了:
>> /bin/sh
>> user
因此,当我尝试 运行 来自 Octave 的实际脚本(不是上面的脚本)时,我收到“找不到命令”错误。 知道我在这里做错了什么吗?
请尝试
system('./myscript.bash')
或
system('/bin/sh /root/path/to/myscript.bash')
并在您的 bash 脚本中使用您程序的绝对路径,或者您可以将您的程序放在 /bin
目录中
路径示例:
/root/path/to/myscript.bash
发现问题是我安装了带有 flatpack 的 Octave,它创建了自己的环境或其他东西,因此无法真正看到 /bin 中的功能。所以如果你有类似的问题,比如在 Octave 命令行和终端中没有相同的功能:
flatpak uninstall octave
sudo apt-get install octave