2013-05-03 179 views
1

我有一個bash腳本呼應的一個後綴main.cf文件

IPADD=$(ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}') 
cat <<EOG> /etc/postfix/main.cf 
# LOCAL PATHNAME INFORMATION 
queue_directory = /var/spool/postfix 
command_directory = /usr/sbin 
daemon_directory = /usr/libexec/postfix 

# QUEUE AND PROCESS OWNERSHIP 
mail_owner = postfix 
# SENDING MAIL 
myorigin = $mydomain 

# RECEIVING MAIL 
mydestination = $myhostname localhost.$mydomain localhost $mydomain 
# TRUST AND RELAY CONTROL 
mynetworks_style = host 
smtp_bind_address = $IPADD 
inet_interfaces = $IPADD, 127.0.0.1 

EOG 

的問題是,一旦你運行該腳本,它剔除了從「$ MYDOMAIN」:

# SENDING MAIL 
    myorigin = $mydomain 

而且還剔除了從

# RECEIVING MAIL 
    mydestination = $myhostname localhost.$mydomain localhost $mydomain 

我想$ IPADD工作並運行「$ MYHOSTNAME」和「$ MYDOMAIN」,但將它喜歡我gnore $ mydomain和$ myhostname的「$」infront。

這可能嗎?

回答

3
cat << 'EOG' > /etc/postfix/main.cf 
# other stuff 
myorigin = $mydomain 
# other stuff 
EOG 

Here Document

+0

謝謝你,但是這使所有的$,其中$ IPADDR,我仍然需要跑步。 – rezizter 2013-05-03 09:34:28

+0

好的,謝謝,如果我把它分開,它運作良好。謝謝。我使用'EOG'運行$ mydomain和$ myhostname,然後在一個新的EOG中運行$ CATADD – rezizter 2013-05-03 09:36:34

0

使用$(echo '$a')將這樣的伎倆:

a=1 
cat <<EOF> /etc/postfix/main.cf 
> test=$(echo '$a') 
> foo=$a 
> EOF 

輸出:

test=$a 
foo=1