首页 > 其他 > 详细

BASH_SOURCE 用法

时间:2015-12-21 20:07:20      阅读:2342      评论:0      收藏:0      [点我收藏+]

参考 bash少见的用法 http://blog.csdn.net/wonderisland/article/details/22892759。

 

原有项目里自带的启动脚本用到了bash_source获取脚本名称,最后使用如下方式启动程序。

 nohup nice -n $APP_NICENESS "${this}" $command "$@" > "$log" 2>&1 < /dev/null &

 

然而发现有的同学调用后会报出

nice: .....: No such file or directory之类的错误

 

参考线上脚本写了一个测试shell 名为testbashsource

 

this="${BASH_SOURCE-$0}"

echo $this

bin=`dirname "$0"`

echo $bin

bin=`cd "$bin"; pwd`

echo $bin

APP_HOME=`dirname "$bin"`

echo $APP_HOME

 

使用几种不同的方式启动脚本:

 

 

17:53 [root@a05.stat.collector.qingdao.youku]$ ./testbashsource 

./testbashsource

.

/vol/collector/bin

/vol/collector

tty:[3] jobs:[0] cwd:[/vol/collector/bin]

17:53 [root@a05.stat.collector.qingdao.youku]$ /bin/sh testbashsource 

testbashsource

.

/vol/collector/bin

/vol/collector

tty:[3] jobs:[0] cwd:[/vol/collector/bin]

17:53 [root@a05.stat.collector.qingdao.youku]$ /bin/bash testbashsource 

testbashsource

.

/vol/collector/bin

/vol/collector

 

 

由上可知${BASH_SOURCE-$0}这种用法在使用./testbashsource方式启动的时候得到的值是./testbashsource;在使用sh testbashsource之类的方法启动时候得到的值只有testbashsource

 

这造成了在最后nice部分启动的时候找不到启动脚本的路径报错。

 

同样可以注意到的在用到pwd命令后获得的绝对路径都是一样的,所以以后再使用路径的时候尽量还是都用绝对路径这种方法更安全可靠一点。

BASH_SOURCE 用法

原文:http://www.cnblogs.com/dongxiao-yang/p/5064191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!