如何结合" - "和" - "开始八度时的选项?

时间:2012-06-20 02:14:51

标签: octave

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

例如,当我将此作为我的八度.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兼容的八度代码,所以我想使用这个--traditional选项来确保我保持代码与Matlab兼容,以防我需要运行相同的代码在Matlab内部也是如此。

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

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

感谢

1 个答案:

答案 0 :(得分:2)

我认为这本身并不是octave问题。 Unix shebang表示法通常有些限制。我不知道我头顶的确切限制,但我很确定如果你为shebang线添加多个选项,很多实现都不满意,这似乎是你的问题。

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

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