1

Я хочу написать сценарий bash, который вызывает скомпилированный исполняемый файл (я начинающий студент compsci). Тем не менее, я хочу скрыть фактический путь к файлу от вызова. Вот моя функция, которую я имею до сих пор:

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
}

Кажется, это работает для того, что я хочу, за исключением одной проблемы: после заголовка вы можете увидеть «Running ... =====», он печатает вызов исполняемого файла. Я не уверен, является ли это ошибкой того, как я это сделал, или BASH не скрывает файловые вызовы, но если это последнее, есть ли способ, которым я могу это скрыть, чтобы он не отображался как (скажем, файл это хс с аргументами 1 2):

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

Любая помощь приветствуется, спасибо. Я понимаю, что другие мои методы могут быть глупыми или не работать, но я бы предпочел исправить их самостоятельно, если это возможно. На данный момент это мое занятие. Спасибо за любую помощь.

ПРИМЕЧАНИЕ: ЭТО НЕ РАБОТАЕТ. Я просто возился с этим, вот и все.

1 ответ1

0

Сожалею. Я не прочитал свои заметки должным образом, и там написано: argv [0] == строка названия программы. Следовательно, printf("% s% s% s\n", argv [0], argv [1], argv [2]);

Технически делал именно то, что хотел. Спасибо за предложение этого форума для вопросов, даже таких глупых, как мой был:P

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .