殼牌

2012-10-31 202 views
0

連接字符串連接字符串時的Linux shell腳本殼牌

apphome="`cd \`dirname $0\` && pwd && cd - >/dev/null`" 
echo "***************** APP Home***************" 
echo $apphome 
libdir="${apphome}/lib" 
echo "**********Lib DIR ***********************" 
echo ${libdir} 

echo $apphomeecho $libdir我面對這個問題給出以下輸出

***************** APP Home*************** 
/product/abc/project1/cba/STADATA 
**********Lib DIR *********************** 
/libduct/abc/project1/cba/STADATA 

,爲什麼不把它正確地追加/ lib添加到LIBDIR ,可能有人解釋我是怎麼回事錯在這裏

+0

複製**只是有點你**發佈到自己的文件,並直接使用'sh'或'bash'運行它。你在某個地方引入錯誤,你沒有發佈。 – tylerl

+1

不知何故,$ apphome以回車結束。你使用的是Windows shell嗎? –

+1

'$()'嵌套,反引號不。用途:'$(CD $(目錄名稱$ 0)&& PWD)'(無需CD回來,這是一個子shell)或'$(目錄名稱$(的readlink -f $ 0))'。反引號是邪惡的。 –

回答

1

只是引用串

libdir="${apphome}/lib" 

完整的腳本

#!/bin/sh 
apphome="`cd \`dirname $0\` && pwd && cd - >/dev/null`" 
echo "***************** APP Home***************" 
echo $apphome 
libdir="${apphome}/lib" 
echo "**********Lib DIR ***********************" 
echo ${libdir} 

***************** APP Home*************** 
/product/abc/project1/cba/STADATA 
**********Lib DIR *********************** 
/product/abc/project1/cba/STADATA/lib 
+0

我做到了,同樣的輸出:( – KItis

+1

哪些是你使用的殼呢?我只是測試它和它的作品。 – Matteo

+1

確定這是你使用shell?如何在腳本執行? – Matteo