String 在两个字符串上使用tcl exec diff模拟diff输出

String 在两个字符串上使用tcl exec diff模拟diff输出,string,tcl,exec,diff,tclsh,String,Tcl,Exec,Diff,Tclsh,我正在尝试在两个字符串上使用tcl exec diff在tclsh中生成相同的diff命令输出 您能告诉我如何使用tclsh exec diff解决这个例子吗 使用Bash $ diff <(echo "Testword") <(echo "Testword2") 1c1 < Testword --- > Testword2 第一次尝试 % exec diff <(echo "$string1") <(echo "$string2") extra chara

我正在尝试在两个字符串上使用tcl exec diff在tclsh中生成相同的diff命令输出

您能告诉我如何使用tclsh exec diff解决这个例子吗

使用Bash

$ diff <(echo "Testword") <(echo "Testword2")
1c1
< Testword
---
> Testword2
第一次尝试

% exec diff <(echo "$string1") <(echo "$string2")
extra characters after close-quote
% exec diff <(echo \"$string1\") <(echo \"$string2\")
couldn't read file "(echo": no such file or directory
% exec diff \<(echo \"$string1\") \<(echo \"$string2\")
couldn't read file "(echo": no such file or directory
% set command [concat /usr/bin/diff <(echo \\"$string1\\") <(echo \\"$string2\\")]
/usr/bin/diff <(echo \"Malli\") <(echo \"Malli1\")
% exec $command
couldn't execute "/usr/bin/diff <(echo \"Malli\") <(echo \"Malli1\")": no such file or directory.

%exec diff这有点棘手,因为您依赖于bash功能-转换

% set command [concat /usr/bin/diff <(echo \\"$string1\\") <(echo \\"$string2\\")]
/usr/bin/diff <(echo \"Malli\") <(echo \"Malli1\")
% exec $command
couldn't execute "/usr/bin/diff <(echo \"Malli\") <(echo \"Malli1\")": no such file or directory.
% exec bash -c "diff <(echo '$string1') <(echo '$string2') || /bin/true"
1c1
< Testword
---
> Testword2
%