https://google.github.io/styleguide/shellguide.html λ₯Ό κΈ°μ΄νμ¬ κ³΅λΆνμμ΅λλ€.
λ¨Όμ ν° κ·Έλ¦Όμ μ‘κ³ κ°λ κ²μ μ’μνκΈ° λλ¬Έμ, μ μ€ν¬λ¦½νΈλ₯Ό μ μ΄λ¦° λ§μμΌλ‘ 곡λΆνλ €κ³ νλμ§ μΈκΈν©λλ€. μμΌλ‘ μ°μ΅ν Shellμ Application μμΉμμ μ ν¬κ° μνλ λͺ λ Ήμ 컀λμ μ λ¬ν΄μ€ νλ‘κ·Έλ¨μ λλ€.
μ΄μ체μ μ μ¬μ©μ μ¬μ΄μ μ€κ°λ€λ¦¬ μν μ ν΄μ£Όλ λꡬλ‘, μ¬μ©μκ° μ λ ₯νλ λͺ λ Ήμ μ½κ³ νλ‘μΈμ€ μ€νμν€λ νλ‘κ·Έλ¨μ λλ€. κ²°κ΅, μμ μ΄μ©ν΄μ μ΄μ체μ μ λͺ λ Ήμ λ΄λ¦΄ μ μλ€λ κ²μ λλ€. μκ³Ό 컀λ, μ΄μ체μ μμ μΌμ΄λλ μ λΆλ₯Ό μλ €κ³ μμνλ 곡λΆλ μλλλ€. μλ‘μ΄ λ¬Έμ μ λ§μ£Όνμ λ, μ κ·Όν μ μλ λ νλμ λ°©λ²μ΄ μκΈΈ μ μλ€λ κΈ°λκ°μΌλ‘ μμν©λλ€. μλ‘μ΄ κ²μ λ°°μ°λ κ²μ΄ νλ€μ§ μμ λ, νλλΌλ λ λ°°μλ΄ μλ€. μ νλ‘κ·Έλ¨μΌλ‘λ bash, sh, ksh, csh λ±μ΄ μκ³ , μλμ°μ κ²½μ°λ explorer.exe κ° λκ² μ΅λλ€.
μ μ€ν¬λ¦½νΈλ μ λͺ λ Ήμ΄λ€μ μΈν°νλ¦¬ν° λ°©μμΌλ‘ μ€ννλ νλ‘κ·Έλ¨ μ λλ€.
sh hello.sh # bash hello.sh λ κ°λ₯
#
cf) λͺ λ Ήμ΄ κ΅¬λΆ ;
#!/bin/bash
#! : μ΄ νμΌμ΄ μ΄λ€ λͺ λ Ήμ΄ μ§ν©μΈμ§ μμ€ν μ μλ €μ£Όκ² λ€.
/bin/bash : νμ¬λ 리λ μ€μ κΈ°λ³Έ νμ¬λ μΌλ°μ μΈ μμΈ bashμ΄λ€.
hi(){
# λ΄μ©
}
λ³μμ νμ κ΅¬λΆ μμ.
a=3 # '='μλ€ κ³΅λ°± X (declare a=3κ³Ό λμΌ)
echo $a # λ³μ μ¬μ© μμλ '$'(μλλ©΄, λ¬Έμμ·¨κΈλ¨)
unset a # λ³μν΄μ
μ§μλ³μ, μ μλ³μλ κΈ°μ‘΄ κ°λ κ³Ό λμΌν¨.
νκ²½λ³μ λΌλ κ²μ΄ μλλ°, μμ νλ‘μΈμ€μμλ λ³μλ₯Ό μ¬μ©ν μ μκ² λ¨.
export a=3 # νκ²½λ³μ
export -n a # νκ²½λ³μ -> μ§μλ³μ
env # νκ²½λ³μ μΆλ ₯
μ½κΈ°μ μ©λ³μ λ μλ°μ€ν¬λ¦½νΈμ constμ λμΌν¨.
readonly a=3
λ¬Έμ | μ€λͺ |
---|---|