答案1
看起来您想要将它们$1
解释$2
为 shell 代码,而不是要执行的命令的名称,因此您需要:
d2c() {
diff <(eval " $1") <(eval " $2")
}
(请注意前导空格以避免名称以 开头的命令出现问题-
)。
您还需要确保在传递这些代码时使用单引号而不是双引号,以d2c
消除引入命令注入漏洞的风险。
d2c 'echo "$var1"' 'echo "$var2"; echo "$var3"'
不是
d2c“回显$ var1”“回显$ var2;回显$ var3”
例如。