这可能不像我做的那么难,但是如何将一个局部变量干净地传递给命令行作为目录的一部分?
我正在连接类似的文本文件(基于字符串)并将它们存储在包含相同字符串的新文本文件中。
例如:
for lastname in students
'cat class/*'+lastname+'*.txt > /class/'+lastname+'_list.txt'
end
理论上,如果我有名为的文件:
我最终会得到一个名为Smith_list.txt的文件,其中包含四个文件的内容。
感谢您的任何指示,我是Ruby的新手。
答案 0 :(得分:3)
您可以将系统命令括在backticks
中并将变量插入到命令中,因为反引号方法支持插值。
这是一个启动gedit的人为举例:
local_var = "gedit"
`#{local_var}` # interpolation syntax is #{...}
编辑:这是另一个演示块内插值并将foo.txt
的内容写入bar.txt
的示例。您可以使用for
循环执行类似的操作,但这不是常见的红宝石习惯。
files = ['foo.txt']
files.each do |f|
puts "#{f}" # block variable interpolated within double quotes
`cat #{f} > bar.txt` # block variable interpolated within backticks
end
答案 1 :(得分:0)
您可以在命令中执行以下操作:
<div class="ckDocNames">
@foreach (var dn in Model.GetDocNamesForDocTypeId(Model.DocTypeId))
{
<div class="checkboxContainer, editCkBoxes">
<input class="ckBoxes" type="checkbox" name="DocNameId" value="@dn.Value" dtid="@dn.Group.Name" />@dn.Text<br />
</div>
}
</div>
使用注释中指示的后退标记来运行此操作。
或
只能使用Dir.glob File.open和读/写的组合在Ruby中执行此操作。