2012-07-19 159 views
0

我知道在shell腳本中使用#會註釋行的其餘部分。如何在linux shell腳本中使用##

我必須將變量從另一個文件傳遞給shell腳本。我正在使用「導出」來執行此操作。問題是變量的值有一個#,所以我無法獲得我的shell腳本中的值。

我使用下面

出口FILE_NAME =#gclfac給出腳本*附表$

正如你可以看到#是值的開頭,我不能夠得到任何東西我shell腳本。

如何在shell腳本中傳遞'#'值而不註釋掉其餘行?任何幫助將不勝感激

+0

使用'#'不一定會評論該行的其餘部分。考慮'echo foo#bar'。規則很複雜,但大致可以概括爲:'#'僅在未加引號且以空格,分號或管道符號開頭時才指定註釋。 – 2012-07-19 16:32:45

回答

0
export FILE_NAME='#gclfac*sched$' 

export FILE_NAME="#gclfac*sched$" 

腳本來執行:

#!/bin/bash 
set -x 
export FILE_NAME='#jfkslj**23948290$' 
echo $FILE_NAME "_ $FILE_NAME" 

把它的test.sh使其可執行(chmod +x test.sh),然後運行爲./test.sh和發佈在這裏輸出。 ps。你的shell是否爲bash(如果沒有,將she-bang [#!/ bin/bash改爲第一個字符串]改爲你的shell並且不要忘記寫關於它的信息)?

+0

這也不起作用 – user1538033 2012-07-19 14:18:21

+0

@ user1538033請按照我已添加到我的答案的說明。我們將盡力弄清楚。 – rush 2012-07-19 15:13:49

0

將您的賦值字符串放在雙引號中。所以要用你的榜樣,它會是;

FILE_NAME="#gclfac*sched$" 
export FILE_NAME 
+0

我試過這個..但價值仍然是空的。 – user1538033 2012-07-19 14:18:05

+0

對不起@ user1538033我忘了一個換行符...我早些時候做過這個。我上面編輯了我的原始答案。 – 2012-07-19 16:55:12