我想将一个文件作为参数传递给给定的Ruby脚本。这个文件只包含一个数字(ID(。
运行Ruby脚本的命令看起来像:
test export 123456 -o ./path/to/export -x
数字123456
代表我想通过GitLab的txt/dat文件传递的参数。
我试过了:
test export "$(< /home/file.dat)" -o ./path/to/export -x
还有:
test export "`cat file.dat`" -o ./path/to/export -x
但我总是得到同样的错误:
cat: file.dat: No such file or directory
非常有趣的一点是,如果我在另一个命令之前运行cat
,那么文件的内容就在那里(这样就可以找到文件(。如果我运行它";嵌套的";在Ruby命令中,将找不到它。
有什么想法我该怎么解决吗?
非常感谢
我不确定这是否是您想要的,但您可以通过命令行传递文件名,并在ruby脚本中读取文件的内容:
id = nil
# ARGV holds all the parameters passed to the script
File.readlines(ARGV[0]).each do |line|
id = line # id here will be set to the value contained in the file you passed a parameter
end