2014-10-03 89 views
1

我有一個bash腳本的問題,需要尋求一些幫助。腳本如下:Bash腳本雙引號

#!/bin/bash 
config_options="CFLAGS=\"-Wall -pipe\"" 
./configure --prefix=$PWD/install $config_options 

如果我使用運行此腳本,我得到了錯誤「無法識別的選項 - 管道」。但是,如果我直接使用下面的命令,它就會起作用。

./configure --prefix=$PWD/install CFLAGS="-Wall -pipe" 

我的理解是,這個命令和bash腳本是完全一樣的,因爲我已經把我不知道爲什麼這個劇本給了一個錯誤之前」轉義字符\。

請讓我知道如果你需要更多信息

感謝

+1

推薦閱讀:http://mywiki.wooledge.org/BashFAQ/050 – 2014-10-03 14:59:22

+0

你的理解是不正確的。 'config_options'中的引號不保護'-Wall'和'-pipe'之間的空格;它們被視爲字符串中的字面章程。因此'configure'看到兩個單獨的參數'CFLAGS =「 - Wall和'-pipe」'。 – chepner 2014-10-03 15:04:08

回答

3

你不可錯過的命令行選項在這樣的字符串變量可以使用BASH陣來代替:。!。

#!/bin/bash 
config_options=(CFLAGS="-Wall -pipe") 
./configure --prefix=$PWD/install "${config_options[@]}"