我正在从我的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
答案 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
现在我们不必担心脚本被调用到哪个目录!太棒了!!