2014-06-19 42 views
12

我在markdown中寫了一些文檔,我想記錄如何使用bash HEREDOC創建文本文件。下面是我想記錄下命令:在降價中如何逃脫反撥?

# cat > /tmp/answers.txt <<EOT 
> value1=blah 
> value2=something else 
> value3=`hostname` 
> value4=onetwothree 
EOT 

在降價一個使用'呈現文本爲「代碼」我試着這樣做......

`# cat > /tmp/answers.txt <<EOT` 
`> value1=blah` 
`> value2=something else` 
`> value3=\`hostname\`` 
`> value4=onetwothree` 
`EOT` 

...但是,結果在一些看起來像這樣...

# cat > /tmp/answers.txt <<EOT 
> value1=blah 
> value2=something else 
> value3=\ 

主機名
> VALUE4 = onetwothree
EOT

回答

6

下面這段代碼塊的伎倆。

``` 
# cat > /tmp/answers.txt <<EOT 
> value1=blah 
> value2=something else 
> value3=`hostname` 
> value4=onetwothree 
EOT 
``` 

三個反引號意味着它的代碼段,代碼段必須用三個反引號結束。

如需更多幫助,請參閱降價這CheatSheet.

6

我認爲你需要從單一的反勾的 「分隔符」 更改爲雙...

即: ``value3=\`hostname\` ``

應該呈現

> value3=\`hostname\`

+1

感謝您的答覆,但沒有解決我的問題。我想我會用'> value3 = $(hostname)'去放棄在我的腳本中使用舊式反引號。 –

+0

@RedCricket:我用更好的格式更新了我的評論。不知道這是否會對你有幫助,但是你可以使用盡可能多的反蜱來開始/結束一條線。如果你使用3(例如),那麼1或2個回刻度就會被正確渲染。我認爲你的解決方案也可以工作 –

+0

@RobertEkendahl這爲我工作。我認爲這個問題的一般解決方案是,如果你想在代碼塊中使用back-tick,那麼你就不能用單個back tick來劃分它。你需要雙倍或三倍。謝謝! –

15

The original Markdown syntax documentation covers this;它說,你必須使用多個反引號來括代碼的表達,所以像這樣的:

``here you go - ` this was a backtick`` 

呈現這樣的:

here you go - ` this was a backtick

如果你想要在一個反引號正常文本,而不是在代碼塊中,反斜槓轉義可以做到這一點;比如這個:

Here's a backtick: \`; then, here's another one: \` 

呈現這樣的:

這裏有一個反引號:`;那麼,這裏的另一個問題:`

(我測試了這個在commonmarkgithub和它的行爲一樣的,所以它不只是一個SO古怪)

+0

和想法如何獲得一組反引號以純文本呈現? –

+1

@WaltStoneburner回答更新。 – Glyph