在.bash 脚本中隐藏对可执行文件的文件路径调用?

在.bash 脚本中隐藏对可执行文件的文件路径调用?

我想编写一个调用已编译可执行文件的 bash 脚本(我是计算机科学的初学者)。但是,我想在调用中隐藏实际的文件路径。这是我目前拥有的功能:

function comprun() 
{
   local source_file=$1
   local args=$2
   g++ -Wall -Wextra -Wconversion "$source_File" -o "$source_file.x";
   if [ $? -eq 0 ]; then
      echo -e "Running $source_file.x PARAM: $args\n==============\n";
      if [ -z "$args" ]; then
           ./$source_file.x;
      else
           ./$source_file.x $args;
      fi
   fi
}

这似乎符合我的要求,但有一个问题:在标题后,您可以看到“正在运行...=====”,它会打印出可执行文件的调用。我不确定这是不是我的错误,或者 BASH 是否没有隐藏文件调用,但如果是后者,有没有办法可以隐藏它,这样它就不会显示为(假设文件是​​ xc,参数为 1 2):

Running x.c.x PARAM: 1 2
==========================
./x.c.x 1 2    

任何帮助都非常感谢,谢谢。我知道我的其他方法可能很愚蠢或不起作用,但如果可能的话,我更愿意自己修复这些问题。目前这是我最关心的事情。感谢您的任何帮助。

注意:这不是家庭作业。我只是在摆弄它,仅此而已。

答案1

抱歉。我没有仔细阅读笔记,上面写着:argv[0] == 程序名称字符串。因此,printf("%s %s %s\n", argv[0], argv[1], argv[2]);

从技术上讲,它完全按照我的意愿运行。感谢你们提供这个论坛来提问,尽管我的问题很愚蠢 :P

相关内容