Os scripts do shell são muito semelhantes aos comandos que você digita interativamente no shell. Nesse caso, a opção -o
informará g++
onde colocar o binário. Então, basta dizer que você quer no diretório binário:
g++ lesson01.cpp -o Binary/lesson01
Você pode executar isso de forma interativa (digitando-o no shell) ou colocá-lo em um script de shell - ambos farão a mesma coisa:
#!/bin/sh
g++ lesson01.cpp -o Binary/lesson01
Normalmente, no entanto, você usaria um Makefile para fazer coisas como essa, não um shell script.
all:
Binary/%: %.cpp
g++ -o "$@" "$<" # Note: this must be a tab, not spaces. Make is annoying like that
você digitaria make Binary/lesson01
e Make compilaria o programa (se a fonte for mais recente que o binário existente ou se o binário não existir). Você também pode listar todos os programas depois que all:
acima ( all: Binary/lesson01 Binary/lesson02
, etc.) e depois digitar make
irá compilar todos os programas conforme necessário.
Você também pode fazer coisas mais avançadas com o Make ou um shell script (por exemplo, para determinar a lista de programas a serem compilados, em vez de listar todos eles), mas isso é um pouco mais complicado.