使用diff将文件与变量进行比较

时间:2015-04-15 11:46:25

标签: linux bash shell diff

在diff命令中出现以下错误。请帮助我如何指定我想要查看文件和变量之间的区别:

$ current_unavail=ranjith
$ cat /tmp/ran
ranjith
$ test=$(cat /tmp/ran)

我得到的错误

$ diff `$current_unavail` `$test`
diff: missing operand after `diff'
diff: Try `diff --help' for more information.

1 个答案:

答案 0 :(得分:5)

你使用了错误的报价。假设$current_unavail$test是两个shell变量,每个变量都包含一个文件的名称,你应该这样做:

diff "$current_unavail" "$test"

反引号`用于命令替换(如a=`cmd`),但首选语法为a=$(cmd)


要将文件 /tmp/ran变量 $current_unavail进行比较,您可以执行以下操作:

diff /tmp/ran <(echo "$current_unavail")

diff适用于文件描述符,而不是变量。但是在bash中,您可以使用process substitution <( ... )从执行命令的结果中创建临时文件描述符。