как назначать параметры сценариям bash [закрыто]

Я кодирую на C в ubuntu и debian, и мне надоело менять скомпилированный файл с a.out на другое имя. каждый раз, когда я создаю программу, я хочу написать небольшой сценарий вроде этого:

cc file.c 

mv a.out file.out 

Моя проблема в том, что я не знаю, как изменить имя «файл» на любое другое, которое я хочу. Я не знаю, можно ли иметь параметры в ubuntu.

Спасибо за ответы!

1
задан 4 October 2016 в 05:17

3 ответа

Вы не должны делать этого. -o флаг к компилятору уже позволяет указывать выходное имя.

Примечание : на Linux, cc символьная ссылка на gcc, который является компилятором C GNU

Пример:

$ cat hello_world.c                                                            
#include <stdio.h>

int main()
{
   printf("%s","Hello World");
   return 0; 
}
$ gcc hello_world.c -o MyProg
$ ./MyProg
Hello World
<час>

Что касается самих сценариев, можно использовать параметры командной строки с $N, где N является целым числом

$ cat compile_stuff.sh                                                         
#!/bin/bash
if gcc "$1"
then
    mv a.out "$2"
fi
$ ./compile_stuff.sh hello_world.c MyProg                                      
$ ./MyProg                                                                     
Hello World$ 
2
ответ дан 3 December 2019 в 06:31

cc -o file.out, от man cc, простой ответ. Для более сложного программного обеспечения мы используем make (см. man make, ищите Makefile в загруженных источниках)

1
ответ дан 3 December 2019 в 06:31

Да можно было пронумеровать позиционные параметры в ударе (или другой Полученный из границы) сценарий оболочки, например

#!/bin/bash

/usr/bin/cc -o "$1" "$1.c"

который можно назвать как

./myscript file

скомпилировать и связаться file.c кому: file - посмотрите, например, Positional Parameters раздел страницы руководства удара (man bash).


Однако, если Вы имеете make установленный, затем необходимо просто смочь записать make file скомпилировать и связаться file.c к исполняемому файлу file использование правил по умолчанию.

Например, данный

$ ls
hello.c  subdir1  subdir2

где

$ cat hello.c
#include <stdio.h>

int main(void)
{
  printf("Hello world!\n");

  return 0;
}

затем

$ make hello
cc     hello.c   -o hello
$ 
$ ./hello
Hello world!
3
ответ дан 3 December 2019 в 06:31

Другие вопросы по тегам:

Похожие вопросы: