Criando uma função .bashrc com comandos encapsulados

2

Estou tentando criar uma função .bashrcpara atalho meus comandos MAMP. Eu quero fazer algo assim:

mamp config

  • Abre o httpd.confarquivo do MAMP para edição.

mamp restart

  • Reinicia o servidor MAMP.

Eu criei uma função .bashrcchamada mamp():

function mamp {
  if [$1 == "config"]; then
    nano /Applications/MAMP/conf/apache/httpd.conf
  fi

  if [$1 == "restart"]; then
    /Applications/MAMP/Library/bin/apachectl restart
  fi
}

Mas isso não parece funcionar.

Eu recebo este erro -bash: [config: command not found

zakangelle
fonte

Respostas:

2

Eu acho que tudo que você precisa fazer é adicionar espaços nos iftestes,

por exemplo

if [ $1 == "config" ]; then
suspeito
fonte
Uau, obrigada. Isso cuidou disso. Não sabia que era tão exigente quanto ao espaçamento.
zakangelle
Você é bem vindo. espaçamento [e ]ajuda a bash com a análise da declaração.
precisa
3
@zakang: Bem, [é um comando. Colocar um espaço entre [e $1é como colocar um espaço entre mampe configdentro mamp config.
grawity
@ grrawity: É bom saber. Eu trabalho com JavaScript diariamente, e é muito mais flexível com coisas assim, então pensei que era uma preferência de formatação.
zakangelle
11
Eu também garantiria que você tivesse um parâmetro. [ $1 == "config" ]irá engasgar de maneira um tanto enigmática se não houver um parâmetro $ 1. Colocar [ $# -ne 0 ] && returnfará isso.
Rich Homolka