我有以下输入:{x y z}并且需要输出为{$ x $ y $ z}
使用append
和foreach
set args {x y z}
#---------------------------------
# using append
#---------------------------------
set result {}
foreach i $args {
append result " \$[set i]"
}
puts $result ;# $x $y $z
但是当我尝试使用lmap
时,我收到以下错误'unknown command'$ x'`
我尝试了通常的引用技巧,但它没有用。
#---------------------------------
# using lmap
#---------------------------------
# results in
# unknown command '$x'
lmap i $args { \$[set i] }
答案 0 :(得分:2)
您需要在lmap命令的脚本主体中使用命令。也许
lmap i $args { string cat \$ $i }
根据Donal的建议:
using System.IO;
using System.Security.Cryptography;
public string checkMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
return Encoding.Default.GetString(md5.ComputeHash(stream));
}
}
}
答案 1 :(得分:1)
你也可以使用set
,但方式略有不同:
lmap i $args {set i "\$$i"}
[也就是说,除了在对Glenn的答案的评论中提到的像Donal一样使用string cat
时]