Execute o programa c compilado de qualquer local

2

Pergunta rápida. Depois de compilar um programa, eu sempre tenho que explicitamente dizer para ele rodar a partir do diretório atual, adicionando ./ ao nome. Por exemplo $ ./testprog -argument1

Existe uma maneira de configurar algum tipo de alias que permita chamá-lo simplesmente dizendo $ testprog -argument1 , essencialmente permitindo que eu execute o programa de qualquer local?

    
por Headspin 03.04.2012 / 23:28

5 respostas

6

PATH=$PATH:. ... é fácil para cuidar da parte ./ ... na qual você se concentrou, mas prestar mais atenção não é realmente o resultado disso. Além disso, muitos de nós desaprovamos por motivos de segurança. Consulte Adicionando o diretório atual ao caminho para mais discussões sobre esse aspecto.

No caso de eu ter interpretado mal (eu tenho), vou expandir o que o @DavidShwartz está dizendo.

Suas opções restantes incluem a especificação do diretório em questão como parte do caminho ( PATH=$PATH:/to/your/executable/dir ) ou se você tiver apenas alguns programas em mente ou se eles estiverem espalhados em vários locais, usando links simbólicos. Se você estiver indo pela rota do symlink, sugiro que a configuração ~/bin esteja no final do caminho e crie seus links simbólicos em ~/bin ...

ln -s /to/your/executable/dir/program ~/bin/program

Quase sempre é melhor colocar caminhos extras no final da instrução $ PATH. É muito raro que você queira que qualquer coisa substitua os arquivos do sistema. Isso vai cuidar de alcançá-lo.

Para a última parte, você pode colocar um script de shell em um de seus diretórios $ PATH, que inclui as opções que você deseja passar. Você pode realmente trapacear e pular toda a coisa do caminho inteiro: alias runmyprogram '/to/your/executable/dir/program -argument1' (você também pode incluir argumentos de abertura aqui se você sempre quiser)

Existem mais, mas um script de shell no seu caminho ou um comando alias deve fazê-lo.

    
por 03.04.2012 / 23:35
3

Coloque seu executável na pasta em $ PATH ou adicione o diretório que contém este executável em $ PATH

    
por 03.04.2012 / 23:34
3

A maioria das plataformas fornece um diretório bin específico do usuário para essas coisas.

Você pode tentar um comando como echo "${PATH}" para ver se você tem esse diretório em seu caminho. Procure por algo como /home/fred/bin no caminho. Geralmente é muito próximo do início para permitir que você sobrescreva os comandos padrão, se quiser. (Tenha cuidado!)

Se você vir isso, verifique se tem um diretório bin no diretório home e coloque o executável nele.

    
por 04.04.2012 / 01:54
1
alias testprog=./testprog

Se você está se movimentando muito e seu programa está sempre no mesmo diretório, também é possível usar o endereçamento absoluto, como

alias testprog=/home/user/projects/test/bin/testprog

Remova o alias com 'unalias testprog'. Você também pode colocar a linha de alias em seu ~ / .bashrc para que você não tenha que continuar configurando; por exemplo, meu .bashrc inclui essa linha, então meu programa de porta serial sempre registrará em um arquivo sem que eu precise lembrar qual opção usar:

alias minicom="minicom -C /home/user/logs/minicom-$(date +%Y-%m-%dT%H)"
    
por 04.04.2012 / 03:08
0

Você pode colocar o programa em algum lugar que desejar, criar um bashscript que chame seu programa (o que significa que aponte para sua localização) e passe argumentos. Chame mycommand e coloque / usr / bin. Faça chmod + x / usr / bin / mycommand e agora você tem um comando que chama seu programa.

    
por 03.04.2012 / 23:38

Tags