1

我注意到我不能将--traditional选项与另一个字母组合在一起-i,例如其他选项。

例如,当我将此作为 octave .m 文件中的第一行时

#!/usr/bin/octave  --traditional 

然后它工作。Octave 启动正常并运行脚本。

但是当我尝试

#!/usr/bin/octave  --traditional --silent --norc --interactive

这没用。八度误差。不理解选项。

当我尝试

#!/usr/bin/octave  --traditional -qfi

还有错误。但是这个

#!/usr/bin/octave  -qfi

作品。

问题是它--traditional没有像所有其他选项一样的单字母快捷方式。这是我看到的选项

Options:

  --debug, -d             Enter parser debugging mode.
  --doc-cache-file FILE   Use doc cache file FILE.
  --echo-commands, -x     Echo commands as they are executed.
  --eval CODE             Evaluate CODE.  Exit when done unless --persist.
  --exec-path PATH        Set path for executing subprograms.
  --help, -h, -?          Print short help message and exit.
  --image-path PATH       Add PATH to head of image search path.
  --info-file FILE        Use top-level info file FILE.
  --info-program PROGRAM  Use PROGRAM for reading info files.
  --interactive, -i       Force interactive behavior.
  --line-editing          Force readline use for command-line editing.
  --no-history, -H        Don't save commands to the history list
  --no-init-file          Don't read the ~/.octaverc or .octaverc files.
  --no-init-path          Don't initialize function search path.
  --no-line-editing       Don't use readline for command-line editing.
  --no-site-file          Don't read the site-wide octaverc file.
  --no-window-system      Disable window system, including graphics.
  --norc, -f              Don't read any initialization files.
  --path PATH, -p PATH    Add PATH to head of function search path.
  --persist               Go interactive after --eval or reading from FILE.
  --silent, -q            Don't print message at startup.
  --traditional           Set variables for closer MATLAB compatibility.
  --verbose, -V           Enable verbose output in some cases.
  --version, -v           Print version number and exit.

我主要对运行与 Matlab 兼容的 octave 代码感兴趣,因此我想使用此--traditional选项来确保代码与 Matlab 兼容,以防我也需要在 Matlab 中运行相同的代码。

或者,一旦八度开始使用不同的命令,我是否可以“打开”这种兼容模式?

我在 Linux 上使用 GNU Octave,版本 3.2.4。

谢谢

4

1 回答 1

2

我认为这octave本身并不是一个真正的问题。一般而言,Unix shebang表示法有些限制。我不知道我脑海中的确切限制,但我敢肯定,如果您在 shebang 行中添加多个选项,许多实现都不满意,这似乎是您的问题。

使用包装脚本可能是解决此类问题的规范方法。

为了解决您组合短选项和长选项的问题,Unix 约定不允许这样做。如果这对您可行,您可以考虑修补octave以添加一个简短的选项。--traditional或者,我想有一种方法可以在用户或系统范围的 Octave 配置文件中指定传统行为,但如果您需要脚本在您无法控制的系统上工作,这可能没有那么有用。

于 2012-06-20T02:45:38.447 回答