2012-10-02 56 views
0

我無法檢測到錯誤的原因。什麼是錯誤?

請幫我指點一下,它是正確的行爲。我是初學者,所以這對我來說是一個很大的幫助。

的mapping.txt:

test1 hello 
test2 world 

我噓文件: 參數1 =你好

a= cat mapping.txt | grep $1 | awk '{print$1}' 
echo $a 

## Extracting Dump name 
b=$(ls -ltr /home/oracle/$a/$1*.dmp | awk '{print $9}' | tail -1) 

我越來越test1的回聲,但我無法替代的在/ home/ORACLE/美元 /$1*.dmp 腳本

輸出:LS:/home/oracle//hello*.dmp:沒有這樣的文件或董事Ÿ

我應該做的改變,讓它作爲替代:/home/oracle/test1/hello*.dmp

+0

'貓的mapping.txt | grep $ 1 | awk'{print $ 1}''更典型的是'awk'/ $ 1 /''{print $ 1}'mapping.txt' –

回答

4

從錯誤中,你可以看到變量a未設置:

變化你的第一行從:

a= cat mapping.txt | grep $1 | awk '{print$1}' 

到:

a=$(cat mapping.txt | grep $1 | awk '{print$1}') 
+0

我也試過,它說test1:commond沒找到 – Maulzey

+0

你沒有執行' test1'。你只需要grep並在你的ls命令中使用它。不知道你是如何得到這個錯誤的(這表明你正在運行我在腳本中看不到的test1)。 –

+0

幽靈般的錯誤:'( – Maulzey