Membuat fungsi .bashrc dengan perintah yang dienkapsulasi

2

Saya mencoba membuat fungsi di .bashrc untuk pintas perintah MAMP saya. Saya ingin melakukan sesuatu seperti ini:

mamp config

  • Membuka MAMP httpd.conf file untuk diedit.

mamp restart

  • Mulai ulang server MAMP.

Saya membuat fungsi di .bashrc bernama 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
}

Tapi sepertinya itu tidak berhasil.

Saya mendapatkan kesalahan ini -bash: [config: command not found

zakangelle
sumber

Jawaban:

2

Saya pikir semua yang perlu Anda lakukan adalah menambahkan spasi di if tes,

misalnya

if [ $1 == "config" ]; then
suspectus
sumber
Wow Terimakasih. Itu merawatnya. Saya tidak menyadari itu adalah pemilih tentang jarak.
zakangelle
Sama sama. jarak sekitar [ dan ] membantu bash dengan penguraian pernyataan.
suspectus
3
@zakang: Ya, [ adalah sebuah perintah. Menempatkan spasi di antara [ dan $1 seperti menempatkan ruang di antara keduanya mamp dan config di mamp config.
grawity
@ kegembiraan: Itu bagus untuk diketahui. Saya bekerja dengan JavaScript setiap hari, dan jauh lebih longgar dengan hal-hal seperti ini, jadi saya pikir itu adalah preferensi pemformatan.
zakangelle
1
Saya juga memastikan Anda memiliki parameter. [ $1 == "config" ] akan tersedak agak samar jika tidak ada parameter $ 1. Puting [ $# -ne 0 ] && return akan melakukannya.
Rich Homolka