2017-08-02 80 views
1

我想让bash的报价"没有解释庆典使报价没有解释转义

更超过我想exec后面在bash

gnuplot -e "filename='data.dat'" plot.gnuplot 

命令行,我要尽量包裹,在bash脚本像这样的:

#!/bin/bash 
# -*- coding: utf-8 -*- 

gnuplot -e "filename=\'${1}\'" plot.gnuplot 

和EXEC这样

0123的上式bashscript

但它显示了这一点:

+ gnuplot -e 'filename=\'\''data.dat\'\''' plot.gnuplot 

filename=\'data.dat\' 
     ^
line 0: invalid character \ 

如何做到这一点?

+0

为什么你在bash脚本中使用python编码吗? –

+0

@ l'l l告诉vim默认的编码 – armnotstrong

+0

我看到了;也许尝试在命令之前设置你的文件名变量(例如''filename ='''{1}'“'然后'gnuplot -e”$ filename“plot.gnuplot' ... –

回答

1

尽量提前命令设置变量:

path="filename='${1}'" 
gnuplot -e "$path" plot.gnuplot 

如果报价必须是围绕变量:

path="\"filename='${1}'\"" 
gnuplot -e "$path" plot.gnuplot 

设置变量作为一个命令:

gnuplot -e "\"filename='${1}'\"" plot.gnuplot