在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.
答案 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 <( ... )
从执行命令的结果中创建临时文件描述符。