Bash 如何在cygwin中将文件名从环境变量传递到sed?
在Cygwin XP控制台中,我可以运行: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
$ 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"