![Por onde começar a criar aplicativos CLI?](https://rvso.com/image/23924/Por%20onde%20come%C3%A7ar%20a%20criar%20aplicativos%20CLI%3F%20.png)
Depois de usar o Linux por um ou dois meses, sei o que estou fazendo agora.
Ao criar programas, usando qualquer linguagem, obviamente tenho usado códigos como este:
$ python test.py
E então, 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 posso começar a criar aplicativos como esses?Um pouco de pesquisa na web não me levou a lugar nenhum.
Se você mesmo puder me dizer, seria ótimo, mas aceitarei prontamente vários links.
Estou totalmente aberto se houver mais de uma maneira, realmente não me importo com qual idioma (uma desculpa para aprender outro!) Ou qualquer outra coisa.
Responder1
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ção test.py args
invocará o python para executar seu script. Ler sobreShebangé se você quiser saber mais.
Responder2
Em C fica assim:
int main(int argc, char *argv[]) {
O argc é o número de argumentos. Observe que o nome do programa/ferramenta conta.
Os próprios argumentos terminam no vetor de argumentos (ou array), 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 de seu diretório atual assim: ./tool_name input_file_1 ... input_file_n
(ou coloque-o em um diretório que aparece quando você escreve echo $PATH
, então você pode invocá-lo de qualquer lugar, ou seja, sem o ponto).
Responder3
Eu uso o 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 vou voltar para Python porque é muito engraçado desenvolver com Go.
http://golang.org/
https://github.com/idiomas/Go
Aqui você tem um programa simples que obtém os argumentos usados nesse comando:
package main
import (
"fmt"
"flag"
)
func main() {
fmt.Println("Arguments: ", flag.Args())
}