Bash 如何在cygwin中将文件名从环境变量传递到sed?

Bash 如何在cygwin中将文件名从环境变量传递到sed?,bash,shell,cygwin,Bash,Shell,Cygwin,在Cygwin XP控制台中,我可以运行: $ sed -i "s/font*=.*/font=TT DejaVu Sans Mono/g" "/cygdrive/c/Program Files/R/R-3.0.2/etc/Rconsole" 但是,当我设置变量时: sanya@ligong-a691b08a ~ $ fname="/cygdrive/c/Program Files/R/R-3.0.2/etc/Rconsole" 我运行此操作时出错: sanya@ligong-a691b08

在Cygwin XP控制台中,我可以运行:

$ sed -i "s/font*=.*/font=TT DejaVu Sans Mono/g" "/cygdrive/c/Program Files/R/R-3.0.2/etc/Rconsole"
但是,当我设置变量时:

sanya@ligong-a691b08a ~
$ fname="/cygdrive/c/Program Files/R/R-3.0.2/etc/Rconsole"
我运行此操作时出错:

sanya@ligong-a691b08a ~
$ sed -i "s/font*=.*/font=TT DejaVu Sans Mono/g"   $fname
sed:can't read /cygdrive/c/Program:No such file or directory
sed:can't read Files/R/R-3.0.2/etc/Rconsole:No such file or directory

如何修复此命令?

用空格引用文件名:

sed -i "s/font*=.*/font=TT DejaVu Sans Mono/g" "$fname"