在shell脚本中获取$ PWD的问题

时间:2014-04-19 06:04:29

标签: bash shell

我正在从我的linux应用程序调用系统调用。

/ *有些file.c * / file.c嵌入在名为file.elf的可执行文件中。这个file.elf出现在目录中 /home/ubuntu/file.elf 当我执行file.elf时,echo $ BB_PATH打印可执行目录路径。我希望目录路径是脚本放置的路径。即 /home/ubuntu/Desktop/BIN/BB/Chk_File.sh

如何实现这一目标?

if(!(system("ls /home/ubuntu/Desktop/BIN/BB")))
    {
    /* Test Path : remove after testing */
    dw_flag = system("/home/ubuntu/Desktop/BIN/BB/Chk_File.sh");//Call to execute Script
    dw_flag = WEXITSTATUS(dw_flag); 
    }

这反过来调用文件CHK_File.sh

ret_val=0

BB_PATH=$(pwd)

echo $BB_PATH

if [ ! -f ACTION_TAG.txt ]
then
  echo " ACTION_TAG NOT PRESENT "
else

ret_val=1       
fi

echo $ret_val
exit $ret_val

2 个答案:

答案 0 :(得分:0)

您可以使用dirname获取shell脚本的目录。

echo `dirname $0`

答案 1 :(得分:0)

在脚本中添加以下行帮助我

if [ -L $0 ] ; then
    DIR=$(dirname $(readlink -f $0)) ;
else
    DIR=$(dirname $0) ;
fi ;


echo $DIR

现在我们不必担心脚本被调用到哪个目录!太棒了!!