Onde começar a criar aplicativos CLI? [fechadas]

8

Depois de usar o Linux por um mês ou dois, sei o que estou fazendo agora.

Ao criar programas, usando qualquer idioma, obviamente tenho usado código como este:

$ python test.py

Por isso, se eu quiser que test.py leia um determinado arquivo, eu precisarei usar:

$ python test.py something.file

O que eu gostaria de fazer agora é tentar criar um aplicativo de linha de comando para usar

$ myapp something.file

Um programa como o python in $ python test.py ou o nano in $ nano program.pl

Mas onde é que eu começo a criar aplicativos como esses? Um pouco de arrasto na web não me levou a lugar nenhum.

Se você puder me dizer que seria ótimo, mas aceito prontamente vários links.

Eu estou totalmente aberto se há mais de uma maneira, eu realmente não me importo com a linguagem (uma desculpa para aprender outra!) ou qualquer outra coisa.

    
por ACarter 14.07.2012 / 20:11

3 respostas

15

Você pode executar scripts python tornando-os executáveis ( chmod +x test.py ) e tornando #!/usr/bin/env python a primeira linha. Depois de fazer isso, executar test.py args invocará python para executar seu script. Leia sobre shebang se quiser saber mais.

    
por 14.07.2012 / 20:17
2

Em C, é 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 acabam no vetor de argumentos (ou array), argv.

Depois, há a parte complicada de escrever códigos para lidar com eles da maneira pretendida.

Em seguida, compile com o gcc. Você especifica o nome do programa com o sinalizador -o (outfile). Execute o arquivo de seu diretório atual da seguinte forma: ./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).

    
por 14.07.2012 / 20:22
1

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.

Eu não vou voltar ao Python, já que é muito engraçado desenvolver com o Go.

link
link

Aqui você tem um programa simples que recebe os argumentos usados nesse comando:

package main

import (
  "fmt"
  "flag"
)

func main() {
  fmt.Println("Arguments: ", flag.Args())
}

link

    
por 15.07.2012 / 12:05