1

--traditionalたとえば、オプションを他の1文字の他のオプションと組み合わせることができないことに気づきました-i

たとえば、これをオクターブ.mファイルの最初の行として使用する場合

#!/usr/bin/octave  --traditional 

その後、それは動作します。Octaveは正常に起動し、スクリプトを実行します。

でもやってみると

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

それは動作しません。オクターブからのエラー。オプションを理解していません。

やってみると

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

また、エラー。でも、これ

#!/usr/bin/octave  -qfi

動作します。

問題は--traditional、他のすべてのオプションのように1文字のショートカットがないことです。これは私が見るオプションです

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でGNUOctaveバージョン3.2.4を使用しています。

ありがとう

4

1 に答える 1

2

octaveこれ自体は本当に問題ではないと思います。一般に、 Unixシバン表記は多少制限されています。頭のてっぺんからの正確な制限はわかりませんが、シバンラインに複数のオプションを追加すると、多くの実装が満足できないと確信しています。これは問題のようです。

ラッパースクリプトを使用することは、おそらくそのような問題を回避するための標準的な方法です。

短いオプションと長いオプションを組み合わせるという質問に対処するために、Unixの規則ではこれを許可していません。可能であれば、パッチoctaveを適用しての短いオプションを追加することを検討できます。--traditionalまたは、ユーザーまたはシステム全体のOctave構成ファイルで従来の動作を指定する方法があると思いますが、制御していないシステムでスクリプトを機能させる必要がある場合は、これはあまり役に立たない可能性があります。

于 2012-06-20T02:45:38.447 に答える