Smalltalk,将命令行参数作为文件名

时间:2020-03-06 21:36:02

标签: smalltalk gnu-smalltalk

我是Smalltalk的新手,正在尝试弄清楚如何将命令行参数作为文件名。我已经在网上看到以下片段:

f := FileStream open: 'fileName' mode: FileStream read

但是我想知道如何根据用户对fileName的命令行输入来修改它。以下是该项目的编译和运行方式:

gst file1.st file2.st file3.st file4.st -f mainFile.st readThisFile.dat addiotnalArg

那么如何在Smalltalk中提取用户指定文件的名称?

1 个答案:

答案 0 :(得分:2)

根据https://www.gnu.org/software/smalltalk/manual/gst.html#Invocation 您可以使用Smalltalk arguments访问GNU Smalltalk本身未解释的命令行参数。这将是一个包含这些参数作为字符串的数组。

-a
--smalltalk-args

随后将所有选项作为要通过Smalltalk arguments检索的Smalltalk代码的参数,而忽略它们作为GNU Smalltalk本身的参数。 [...]

-f
--file

以下两个命令行是等效的:

gst -f file args...
gst -q file -a args...

由于readThisFile.dat是第一个参数,因此可以使用Smalltalk arguments at: 1访问它,并将其放入FileStream构造函数消息中:

f := FileStream open: (Smalltalk arguments at: 1) mode: FileStream read

您也可以使用first

f := FileStream open: Smalltalk arguments first mode: FileStream read.
相关问题