壳牌

2012-10-31 256 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