Octave命令行参数

4
这可能是一个普遍的问题,但我是 Octave 的新手,想要从命令行获取一个字符串。然而,我不确定命令行参数的格式是什么样的。我已经尝试输入:

myscript hi
myscript --hi
myscript -hi
myscript (hi)

在命令行中,但我一直收到这个错误:
错误:在索引表达式中无效使用脚本“myscript filepath”
所以显然我的调用方式不正确。 --hi 是官方网站上显示的格式,但似乎对我不起作用。 我只是为了测试从网上获取了这个脚本:
#! /usr/bin/octave -qf

printf("%s", program_name());
arg_list = argv();
for i = 1:nargin
    printf(" %s", arg_list{i});
end
printf("\n");

为了让 argv 正常工作,我需要实现什么内容吗?


你能否发布一个最小化的代码版本来展示问题?你发布的示例代码在我这里运行良好,但我猜想那并不是你遇到麻烦的地方。 - andyras
实际上,当我在命令行上运行代码时,就会出现问题。所以我会输入类似这样的内容: ">myscript --hi"。 然后出现了这个消息: error: invalid use of script C:\Users\Roostersign\Desktop\myscript.m in index expression. 我不明白如何停止这种情况发生。 - roostersign
我想问的是:有人能向我展示如何在命令行上运行此程序,以确保我没有做一些愚蠢的事情导致了这个错误吗? - roostersign
所以你在运行你发布的特定代码示例时遇到了问题?当我运行它时,它可以正常工作,但我使用的是Linux而不是Windows。我不太了解如何使用Windows命令行。也许尝试将命令行参数用引号括起来,例如 myscript.m "--hi",看看是否会出现相同的错误。还可以尝试在没有任何参数的情况下运行脚本,看看是否会出现错误。 - andyras
嗯,算了吧。这个错误基本上是由于Windows命令行和Octave提示之间的混淆,以及一些文件不在当前目录中造成的。糟糕。不过还是谢谢你的帮助。 :) - roostersign
我很高兴你找到了问题! - andyras
1个回答

0

我也开始了。

你说路径名有误。你没有明确指定路径(例如c:\root\myfiles\filex.txt),所以它可能认为文件在当前目录中。

如果你输入ls,能看到你的文件吗?你可以把文件移动到当前目录,或使用cd命令将当前指针更改到文件所在的位置。


是的,如果你看到上面的评论,我最终找到了为什么会出现这个问题。无论如何还是谢谢! - roostersign

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接