Depois de usar o linux por um mês ou dois, eu sei o que estou fazendo agora.
Ao criar programas, usando qualquer linguagem, obviamente eu tenho usado códigos como este:
$ python test.py
E assim, se eu quisesse test.py
ler um determinado arquivo, teria que usar:
$ python test.py something.file
O que eu gostaria de fazer agora é tentar criar um aplicativo de linha de comando, para que eu possa usar
$ myapp something.file
Um programa como o python
in $ python test.py
ou o nano
in$ nano program.pl
Mas onde diabos eu começo a criar aplicativos como esses? Um pouco de rede de arrasto não me levou a lugar algum.
Se você pode me dizer que seria ótimo, mas eu aceitarei prontamente vários links.
Estou totalmente aberto se houver mais de uma maneira, não me importo com qual idioma (uma desculpa para aprender outra!) Ou o que for.
command-line
application
ACarter
fonte
fonte
python
parte?python
.)Respostas:
Você pode executar scripts python, tornando-os executáveis (
chmod +x test.py
) e criando#!/usr/bin/env python
a primeira linha. Depois de fazer isso, a execuçãotest.py args
chamará python para executar seu script. Leia sobre o shebang 's se você quiser saber mais.fonte
$ test.py 30
deu um erro bash:-bash: test.py: command not found
. Obrigado por sua ajuda até agora!$PATH
. Ou usar um caminho, como/path/to/test.py
ou./test.py
se você estiver em/path/to
já, ou adicionar/path/to
ao seu$PATH
. Existem muitas perguntas duplicadas neste site sobre o último.$PATH
, deixe de fora as terminações de arquivos como.py
.#!/usr/bin/env python
parte superior do seu script antes de poder remover a extensão .py. Mas qualquer script que contenha essa invocação ou semelhante (por exemplo,#!/bin/sh
para scripts de shell) pode ser nomeado sem uma extensão. Não tem nada a ver com se está no seu PATH ou não..EXE
e.COM
importam. No entanto, a lógica por trás da remoção da extensão é que executáveis genéricos devem ser executáveis genéricos. O significado dessa tautologia é que os usuários querem apenas a funcionalidade e não precisam saber ou se importar se é Perl ou Python ou sh ou bash ou awk etc. - esse é um detalhe de implementação principalmente irrelevante. E, tornar um script executável e adicionar um shebang o torna um executável genérico.Em C, fica assim:
O argumento é o número de argumentos. Observe que o nome do programa / ferramenta conta.
Os argumentos em si acabam no vetor de argumento (ou matriz), argv.
Depois, há a parte complicada de escrever código para lidar com eles da maneira pretendida.
Em seguida, compile com o gcc. Você especifica o nome do programa com o
-o
sinalizador (outfile). Execute o arquivo do diretório atual como este:./tool_name input_file_1 ... input_file_n
(ou coloque-o em um diretório que aparece quando você escreveecho $PATH
, então você pode invocá-lo de qualquer lugar, ou seja, sem o ponto).fonte
Eu uso Go. É uma linguagem compilada, multiplataforma, com a facilidade de programação de uma linguagem dinâmica e suporte para simultaneidade e comunicação.
Não voltarei ao Python, pois é muito engraçado desenvolver com o Go.
http://golang.org/
https://github.com/languages/Go
Aqui você tem um programa simples que obtém os argumentos usados nesse comando:
http://play.golang.org/p/1dpUT11-cc
fonte