λ¬Όκ³ κΈ° 맀κ°λ³μλ μΌλ°μ μΌλ‘ λ¬Όκ³ κΈ° λͺ λ Ήμ μ£Όμ λκΈ° μ μ μ΄μ€μΌμ΄νλ©λλ€.
mqudsi@freebsd> echo hello > hello\ world.txt
mqudsi@freebsd> file (echo hello world.txt)
hello world.txt: ASCII text
κ·Έλ¬λ μ€κ΄νΈ νμ₯μ κ²°κ³Όλ μ¬λ°λ₯΄κ² μ΄μ€μΌμ΄νλμ§ μμΌλ©° _κ·Έλ¦¬κ³ _ 맀κ°λ³μ μ£Όμμ λ°μ΄νλ₯Ό λμ νλ©΄ νμ₯μ΄ μ€λ¨λλ―λ‘ μλμΌλ‘ μ΄μ€μΌμ΄ννλ μ¬μ΄ λ°©λ²μ΄ μμ΅λλ€.
mqudsi@freebsd> echo -n hello\ {1,2,3}.txt\n
hello 1.txt
hello 2.txt
hello 3.txt
보μλ€μνΌ μ²« λ²μ§Έ 맀κ°λ³μ λ€μμ echo
λ κ°μ κ°λ³ μΈμ hello
λ° #.txt
κ° μ λ¬λμ΄ λ¨μ΄ μμ μΆκ° κ³΅λ°±μ΄ μκΉλλ€.
μΈμλ₯Ό λ°μ΄νλ‘ λ¬ΆμΌλ©΄ λ€μμ΄ λ°μν©λλ€.
mqudsi@freebsd> echo -n "hello\ {1,2,3}.txt\n"
hello\ {1,2,3}.txt\n
μ΄μ€μΌμ΄νλ λ°μ΄νλ₯Ό μλ λ¬Έμμ΄μ μ½μ νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νλ €κ³ μλνλ λμ(λ¬Έμμ΄ λ΄μ©μ΄ κ΅μ²΄ ν λ° μ½μ μ μ μ΄μ€μΌμ΄νλμ§ μλλ€λ κ°μ νμ) λ°μ΄νκ° μ¬λ°λ₯΄κ² μ΄μ€μΌμ΄νλμ΄ μνλ κ²°κ³Όλ₯Ό λ°©μ§ν μ μμ΅λλ€.
mqudsi@freebsd> echo -n \"hello\ {1,2,3}.txt\n\" "hello 1.txt " "hello 2.txt " "hello 3.txt
"
μΈμ λΆν λ¨κ³ μ΄νμ 맀κ°λ³μ νμ₯μ΄ μΌμ΄λλ κ²μ²λΌ 보μ λλ€.
echo
λ κ°μ λ³λ μΈμ hello λ° #.txtκ° μ λ¬λμ΄ λ¨μ΄ μμ μΆκ° κ³΅λ°±μ΄ μκΉλλ€.
λλ κ·Έ μ§λ¨μ λμνμ§ μλλ€. echo
μλ 3κ°μ μΈμ(κ°κ° \n
λλ¨)κ° μ λ¬λκ³ μμΌλ©°, echo
μ¬μ΄μ κ³΅λ°±μ΄ ν¬ν¨λμ΄ μΆ©μ€νκ² μΈμλ©λλ€. μ¬κΈ°μ λ²κ·Έκ° μμ΅λλ€.
λ€μμ μΈμλ₯Ό λλ²κ·ΈνκΈ° μν΄ μννλ μμ μ λλ€.
~> printf 'Β«%sΒ»' hei\ {1,2,3}.txt\n
Β«hei 1.txt
»«hei 2.txt
»«hei 3.txt
Β»β
λ€μμ μΈμλ₯Ό λλ²κ·ΈνκΈ° μν΄ μννλ μμ μ λλ€.
λλ string escape
, μ¦
> string escape -- hello\ {1,2,3}.txt\n
hello\ 1.txt\n
hello\ 2.txt\n
hello\ 3.txt\n
μ¦, μ€μ λ‘ λ΄κ° κΈ°λνλ κ²μ μ»μ μ μμ΅λλ€. "1"λ‘ μ 체 μΈμλ₯Ό μ»μ λ€μ "2"λ‘, κ·Έλ¦¬κ³ "3"μΌλ‘ μ 체 μΈμλ₯Ό μ»μ΅λλ€. μ 체 μΈμμλ κ°νμ΄ ν¬ν¨λ©λλ€.
@mqudsi : μ¬κΈ°μ λΉμ μ
(command)
)λ§ λΆν ν©λλ€. μ¦, μ¬κΈ°μ \n
λ κ°ν λ¬Έμλ‘ λ체λ ν νΉλ³ν μλ―Έκ° μμ΅λλ€. λλ¨Έμ§λ "μΊλ¦ν°"μ
λλ€. μΊλ¦ν°λ₯Ό _μ΄μ€μΌμ΄ν_ν νμκ° μμ΅λλ€. λΆν μ μ€ννμ§ μκΈ°λ§ νλ©΄ λ©λλ€.λλ file (echo hello world.txt)
μμ "hello world.txt" λ hello\ world.txt
_is not_ μ΄μ€μΌμ΄νλμ§ μμΌλ©°, κ°νμ΄ μκΈ° λλ¬Έμ λΆν λμ§ μμ΅λλ€. hello\nworld.txt
λΌλ νμΌμ΄ μμΌλ©΄ bashμ 곡백 λ¬Έμ μ μ μ¬ν λ¬Έμ κ° λ°μν©λλ€.
echo
λ μΈμ μ¬μ΄μ 곡백μ μ½μ
ν©λλ€("-s"κ° μ§μ λμ§ μμ κ²½μ°). μ΄κ²μ΄ μ΄μν λ€μ¬μ°κΈ°λ₯Ό μΌμΌν€λ μμΈμ
λλ€. κ³΅λ°±μ΄ κ°ν λ°λ‘ λ€μ λ°μνκΈ° λλ¬Έμ
λλ€.μ¦, μΆλ ₯μ μν κ²½μ°
hello 1.txt
hello 2.txt
hello 3.txt
echo -s
λλ printf '%s\n' hello\ {1,2,3}.txt
.
λλ μ΄κ²μ΄ λ²κ·Έκ° μλλΌ μ€ν΄λΌκ³ μκ°ν©λλ€. μ κ° λ§μ΅λκΉ?
μ£μ‘ν©λλ€, μ¬λ¬λΆ! λλ λ¬Έμ μ λν μ΅μνμ μ¬νμ μλνκ³ μμκ³ μμ ν λ€λ₯Έ κ²μ μν΄ νΌλμ€λ¬μνμ΅λλ€. 맀κ°λ³μ νμ₯ λμμ΄ μλͺ»λμμ΅λλ€. νΉν parallel
λλ xargs
μ 1μ μ νμ΄ μλ κ²κ³Ό νΌλνμ΅λλ€. μ¦, echo {1,2,3}
κ° 3μΌλ‘ νμ₯λ κ²μ΄λΌκ³ κ°μ
λ°λ‘μ‘μμ£Όμ μ κ°μ¬ν©λλ€.