Como criar o arquivo bash e permitir que ele aceite um argumento do terminal?

4

Em lembrança de sentimentos nostálgicos, lembrei-me dos arquivos .bat no DOS. :)

Aqui está a coisa: Sempre que preciso gerar uma documentação para um determinado aplicativo da Web, preciso:

sudo phpdoc -o HTML: frames: earthli -d public_html / yoursite.dev / aplicativo / -t public_html / yoursite.dev / docs /

existe uma maneira de criar um atalho para o acima, para que possamos digitar apenas:

sudo generateDoc.sh -a yoursite.dev

ou melhor:

sudo generateDoc.sh -theVariableThatNeedsTobeChangedOnBashHere

Para que, se tivermos yoursite.dev passado na linha de comando, o bash terá yoursite.dev, se escrevermos yoursite2.dev então, o bash terá yoursite2.dev e assim por diante ...

Alguma pista?

Muito obrigado.

    
por MEM 22.04.2011 / 18:23

4 respostas

4

Tente isto:

#!/bin/bash
phpdoc -o HTML:frames:earthli -d public_html/""/application/ \
    -t public_html/""/docs/

Chame como sudo ./script.sh yoursite .

    
por Scott Severance 22.04.2011 / 18:54
2

Você também pode colocar essa função em seu .bashrc:

generateDocs() {
    sudo phpdoc -o HTML:frames:earthli \
                -d "public_html//application/" \
                -t "public_html//docs/"
}

então

generateDocs yoursite.dev
    
por glenn jackman 23.04.2011 / 02:53
1

Aqui está um script de exemplo que eu escrevi. O $* significa "todos os argumentos passados". É importante destacar que eles estão entre aspas porque, do contrário, o espaço em branco quebraria o comando. Quodlibet é uma doce biblioteca de música / tocador, btw.

jake@daedalus:~$ cat bin/play
#!/bin/bash
quodlibet --query "$*"
quodlibet --next
jake@daedalus:~$ play garrison keillor rhubarb pie

Como Fido disse, não se esqueça de definir o arquivo como executável com chmod +x programName .

Algo que você pode considerar é criar um diretório bin em sua pasta pessoal e adicioná-lo ao seu $PATH . Então você pode chamar o comando não importa em que pasta você está. Eu tenho essa linha no meu .bashrc: PATH=$HOME/bin:$PATH . Se você não fizer isso, use um caminho absoluto ou relativo ao chamar seu script, por exemplo:

jake@daedalus:/usr/local/share/docs$ /home/jake/bin/play foo fighters everlong
jake@daedalus:~/bin$ ./play placebo where is my mind

Eu recomendo altamente o Guia do Grymoire para scripts SH . O que você precisa fazer é usar os parâmetros posicionais do shell para inserir argumentos e inseri-los seu comando. Há também TLDP mais aprofundado no tratamento de Parâmetros posicionais do BASH . Eu começaria com o Grymoire e depois leria o TLDP quando você estivesse pronto para um tratamento mais avançado do assunto.

    
por djeikyb 22.04.2011 / 18:59
0

Abra seu editor de texto favorito e cole o seguinte:

args=("$@")
sudo phpdoc -o HTML:frames:earthli -d public_html/${args[0]}/application/ -t public_html/${args[0]}/docs/

e salve-o como (neste caso) 'generateDoc.sh'. A próxima coisa a fazer é dar direitos de execução ao seu arquivo, então abra um terminal e execute: $ chmod +x generateDoc.sh
Agora tudo que você precisa fazer é chamar o arquivo: $ ./generateDoc.sh yoursite.dev não há necessidade de sudo aqui, porque ele já está dentro do arquivo sh.

Espero que isso ajude!

    
por Federico Vera 22.04.2011 / 18:37

Tags