๊ฐ๋ฐ์ ํ๋ค ๋ณด๋ฉด ๋ณ๊ฑฐ ์๋ ์ค ์๊ณ ์ง๋์ณค๋ ๋ช
๋ น์ด ํ๋๊ฐ,
์ค๋ฌด์์๋ “์์ผ๋ฉด ์ ๋๋ ์กด์ฌ”๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
echo ๋ช
๋ น์ด๊ฐ ๋ฐ๋ก ๊ทธ๋ฐ ์ผ์ด์ค๋ค.
์ฒ์์ "Hello World" ํ ์ค ์ถ๋ ฅํ๋ ๋จ์ ๋๊ตฌ๋ก ๋ณด์ด์ง๋ง,
์ค์ ๋ก๋ ๋๋ฒ๊น
, ์๋ํ, ์๋ฒ ๋๋ ์ ์ด, ํ์ผ ์์ฑ๊น์ง ๋ฆฌ๋
์ค์ ๊ฑฐ์ ๋ชจ๋ ์์ญ์ ๊น์์ด ๋ค์ด๊ฐ ์๋ค.
- ์คํฌ๋ฆฝํธ ์ค๊ฐ ์ํ ํ์ธ
- ํ๊ฒฝ ๋ณ์ ์ถ๋ ฅ
- ์ค์ ํ์ผ ์๋ ์์ฑ
- OpenWrt/์๋ฒ ๋๋ ์ฅ๋น ์ ์ด
- ๋ก๊ทธ ํ ์คํธ ํ ํ๋ฆฟ ์ ์
ํนํ OpenWrt๋ BusyBox์ฒ๋ผ ๊ฐ์ํ๋ ํ๊ฒฝ์์๋ printf์กฐ์ฐจ ๋น ์ ธ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์
echo๊ฐ ์ฌ์ค์ “ํ์ค ์ถ๋ ฅ API”์ฒ๋ผ ์ฐ์ด๊ธฐ๋ ํ๋ค.
๋ ์ญ์ ์ฒ์์ echo๋ฅผ ๊ทธ์ “๋ฌธ์ ์ถ๋ ฅ ๋ช
๋ น์ด”๋ผ๊ณ ์๊ฐํ์๋๋ฐ,
๋น๋/๋ฐฐํฌ ์คํฌ๋ฆฝํธ, OpenWrt ์๋ํ, ํ๋์จ์ด ์ ์ด ๋ฑ์ ๋ฐ๋ณตํ๋ค ๋ณด๋
“echo๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฃจ๋๋์ ๋ฐ๋ผ ์คํฌ๋ฆฝํธ ํ์ง์ด ๋ฌ๋ผ์ง๋ค”๋ ๊ฑธ ์ ์คํ ๋๊ผ๋ค.
1. echo ๋ช ๋ น์ด ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
๋ฆฌ๋ ์ค echo ๋ช ๋ น์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์์ฒ๋ผ ์ฌ์ฉํ๋ค.
echo "Hello World"
์ถ๋ ฅ:
Hello World
๋ฑ ๋ณด๋ฉด ๋จ์ํ์ง๋ง, echo์ ์ง์ง ํต์ฌ์
๋ฌธ์์ด์ ์ด๋ป๊ฒ ํด์ํ๋๋, ๊ทธ๋ฆฌ๊ณ ์๋ง๋ค ์ต์
์ฒ๋ฆฌ ๋ฐฉ์์ด ๋ค๋ฅด๋ค๋ ์ ์ด๋ค.
๊ทธ๋์ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ผ๋ Bash์์๋ ์ ์ ์ถ๋ ฅ๋๋๋ฐ
Dash๋ BusyBox์์๋ ์ถ๋ ฅ์ด ๊นจ์ง๋ ์ผ์ด ์ข
์ข
์๊ธด๋ค.
(์ด ๋๋ฌธ์ ์ค๋ฌด์์ echo ๋๋ฌธ์ ๋๋ฒ๊น
์๊ฐ์ ๋ ๋ ค๋ณธ ์ฌ๋์ด ์ ๋ง ๋ง๋ค.)
2. echo ์ต์ ์ ๋ฆฌ

echo๋ ์ต์ ์ด ๋ง์ง๋ ์์ง๋ง, ์ด ์ธ ๊ฐ์ง ์ต์ ๋ง ์ดํดํด๋ ํ์ฉ๋๊ฐ ํฌ๊ฒ ๋ฌ๋ผ์ง๋ค.
1) -n ์ต์ : ์ค๋ฐ๊ฟ ์์ด ์ถ๋ ฅ
์ผ๋ฐ์ ์ผ๋ก echo๋ ์ถ๋ ฅ ๋ค์ ์๋์ผ๋ก ์ค๋ฐ๊ฟ์ ์ถ๊ฐํ๋ค.
ํ์ง๋ง -n ์ต์
์ ์ฌ์ฉํ๋ฉด ๋ง์ง๋ง ์ค๋ฐ๊ฟ์ ์ ๊ฑฐํ๋ค.
echo -n "Hello "
echo "World"
์ถ๋ ฅ:
Hello World
ํ๋กฌํํธ ๊ตฌ์ฑ์ด๋ ์งํ ์ค์ธ ์ํ๋ฅผ ํ ์ค๋ก ํ์ํ ๋ ์์ฃผ ์ด๋ค.
2) -e ์ต์ : escape ๋ฌธ์ ํด์
๋ฆฌ๋
์ค echo ๋ช
๋ น์ด์์ ๊ฐ์ฅ ์ค์ํ ์ต์
์ค ํ๋๊ฐ -e์ด๋ค.
์ด๋ ๋ฌธ์์ด ์์ \n, \t ๊ฐ์ escape ๋ฌธ์๋ฅผ ํด์ํ์ฌ ์ค์ ์ ์ด๋ฌธ์๋ก ๋ณํํ๋ค.
echo -e "Line1\nLine2\nLine3"
์ถ๋ ฅ:
Line1
Line2
Line3
์ฃผ์ escape ์ฝ๋ ์ค๋ช :
| ์ฝ๋ | ์ค๋ช |
| \n | ์ค๋ฐ๊ฟ |
| \t | ํญ |
| \r | ์บ๋ฆฌ์ง ๋ฆฌํด |
| \c | ๋ค ๋ด์ฉ ์ถ๋ ฅํ์ง ์๊ณ ์ข ๋ฃ |
| \\ | ์ญ์ฌ๋์ ์ถ๋ ฅ |
| \" | ํฐ๋ฐ์ดํ ์ถ๋ ฅ |
| \a | ์๋ ์๋ฆฌ(Bell) |
์ด ์ต์ ์ ๋ง์ ์คํฌ๋ฆฝํธ์์ ํ์ํ๋ฐ, ํนํ ๋ฉํฐ๋ผ์ธ ํ ์คํธ ์ถ๋ ฅ, JSON ์์ฑ, ํ ํ๋ฆฟ ์์ฑ์ ์์ฃผ ์ฐ์ธ๋ค.
3) -E ์ต์ : escape ๋ฌธ์ ํด์ ๋๊ธฐ
๋๋ถ๋ถ์ ์์์ echo๋ ๊ธฐ๋ณธ์ ์ผ๋ก escape ๋ฌธ์๋ฅผ ํด์ํ์ง ์๋๋ค.
๊ทธ๋์ -E๋ ๊ฑฐ์ ๊ธฐ๋ณธ ๋์๊ณผ ๊ฐ์ง๋ง, ๋ค๋ฅธ ํ๊ฒฝ์์ ๋ช
์์ ์ผ๋ก ํด์์ ๋๊ณ ์ถ์ ๋ ์ ์ฉํ๋ค.
echo -E "Hello\nWorld"
์ถ๋ ฅ:
Hello\nWorld
3. ์๋ณ echo ๋์ ์ฐจ์ด(Bash, Dash, Zsh, BusyBox)

๋ฆฌ๋
์ค echo ๋ช
๋ น์ด๊ฐ ์ด๋ ค์ด ์ด์ ๋ ๋ชจ๋ ์์์ echo ๋์์ด ๋์ผํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ํ์ ์ธ ์ฐจ์ด๋ฅผ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1) Bash echo
- escape ๋ฌธ์ ํด์ ๋ฐฉ์ ์ ์ฐํจ
- echo -e ์ฌ์ฉ ์ ๊ฑฐ์ ์์๋๋ก ๋์
- ๋๋ถ๋ถ์ Linux ๋ฐฐํฌํ์์ ๊ธฐ๋ํ๋ ๋๋ก ๋์ํจ
2) Dash echo (Ubuntu /bin/sh)
- escape ์ฒ๋ฆฌ ์ ํ์
- -e ์ต์ ์ด ๋์ํ์ง ์์ ์ ์์
- ๊ทธ๋์ Ubuntu์์ sh ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ๋ ๋ฌธ์ ๊ฐ ์์ฃผ ๋ฐ์
→ ์ค์ ๋ก systemd ์๋น์ค์์ dash๋ก ์คํ๋๋ ์คํฌ๋ฆฝํธ๊ฐ echo ๋๋ฌธ์ ์ถ๋ ฅ์ด ๊นจ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
3) BusyBox echo (OpenWrt·์๋ฒ ๋๋)
- ์ต์ ์ง์์ด ๋ค๋ฅด๊ฑฐ๋ ์๋ต๋จ
- -e๋ฅผ ์ธ์ํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์
- ์๋ฒ ๋๋ ๋๋ฒ๊น ์ echo๊ฐ ์์๋๋ก ์ถ๋ ฅ๋์ง ์์ ๋ก๊ทธ ์ ๋ ฌ์ด ๋ง๊ฐ์ง๋ ์ผ์ด ํํจ
4) Zsh echo
- ์ต์ ํด์ ๋ฐฉ์์ด Bash์ ์ ์ฌํ์ง๋ง ๊ธฐ๋ณธ ์ํ์์ ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์
์ด ์ฐจ์ด ๋๋ฌธ์ ๋ค์ ์ง์นจ์ด ๋๋ฆฌ ์๋ ค์ ธ ์๋ค.
“๋ฆฌ๋ ์ค ์คํฌ๋ฆฝํธ์์ escape ๋ฌธ์๊ฐ ์๋ ์ถ๋ ฅ์ echo ๋์ printf ์ฌ์ฉํ๋ผ.”
ํ์ง๋ง ๋จ์ ์ถ๋ ฅ์ echo๊ฐ ์ถฉ๋ถํ๋ค.
4. echo ๋ช ๋ น์ด๋ก ๋ณ์ ์ถ๋ ฅํ๊ธฐ
๋ฆฌ๋ ์ค echo ๋ช ๋ น์ด๋ ๋ณ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฐ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋๋ค.
๊ธฐ๋ณธ ๋ณ์ ์ถ๋ ฅ
name="roroppwa"
echo "Hello $name"
echo '$name'
์ถ๋ ฅ:
Hello roroppwa
$name
ํฐ๋ฐ์ดํ๋ ๋ณ์๋ฅผ ํด์ํ๊ณ ,
์์๋ฐ์ดํ๋ ๋ฌธ์ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ค.
์ด ์ฐจ์ด๋ฅผ ๋ชฐ๋ผ์ JSON ์ถ๋ ฅ์ด ๊นจ์ง๊ฑฐ๋,
๋ณ์์ ๋ฌธ์์ด์ ๋ถ์ผ ๋ ์๊ธฐ์น ์์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์ ๋ง ๋ง๋ค.
5. echo ๋ช ๋ น์ด๋ก ํ์ผ ์์ฑ ๋ฐ ์์ ํ๊ธฐ

echo๋ ๋จ์ ์ถ๋ ฅ๋ฟ ์๋๋ผ ํ์ผ ์์ฑ์๋ ๊ฐ๋ ฅํ๊ฒ ์ฌ์ฉ๋๋ค.
1) ๋ฎ์ด์ฐ๊ธฐ (overwrite)
echo "enabled=yes" > config.ini
โป >๋ ๊ธฐ์กด ๋ด์ฉ์ ๋ฎ์ด์ฐ๊ธฐ.
2) ํ์ผ ๋์ ์ถ๊ฐ (append)
echo "add new line" >> config.ini
โป >>๋ append(์ถ๊ฐ).
3) ๋ฉํฐ๋ผ์ธ ํ์ผ ์์ฑ
echo -e "line1\nline2\nline3" > file.txt
๊ทธ๋ฆฌ๊ณ ์ค๋ฌด์์ ๊ฐ์ฅ ํํ ์ฌ๊ณ ๊ฐ ์๋ค.
‘>>’๋ฅผ ์ผ์ด์ผ ํ๋๋ฐ ‘>’๋ก ๋ฎ์ด์จ์ ์ค์ ํ์ผ ์ ์ฒด๋ฅผ ๋ ๋ฆฌ๋ ๊ฒฝ์ฐ.
๋๋ ์๋ฒ์์ nginx.conf
6. echo๋ก JSON ์์ฑํ๊ธฐ (์๋ํ ์ค์ )
CI, ์๋ฒ ์คํฌ๋ฆฝํธ, OpenWrt ์์ ์์ JSON ์๋ ์์ฑ์ ๋งค์ฐ ํํ๋ค.
echo -e "{\n \"name\": \"roroppwa\",\n \"status\": \"active\"\n}"
๋ฉํฐ๋ผ์ธ JSON์ printf ๋๋ heredoc์ด ๋ ์์ ์ ์ด์ง๋ง,
์งง์ JSON์ echo๋ก ๋ ๋น ๋ฅด๊ฒ ์์ฑํ ์ ์๋ค.
7. echo๋ก ์ปฌ๋ฌ ์ถ๋ ฅํ๊ธฐ
ํฐ๋ฏธ๋์ ANSI ์ปฌ๋ฌ ์ฝ๋๋ฅผ ์ง์ํ๋ค. ์ด๋ฅผ echo์ -e ์ต์ ์ ์ฌ์ฉํด ์ถ๋ ฅํ ์ ์๋ค.
echo -e "\033[31mError:\033[0m Something went wrong"
์์ ์ฝ๋ ์์:
- 31: ๋นจ๊ฐ
- 32: ์ด๋ก
- 33: ๋ ธ๋
- 34: ํ๋
- 0: ๊ธฐ๋ณธ ์์ ๋ณต์
์ปฌ๋ฌ ์ถ๋ ฅ์ ๋ก๊ทธ๋ฅผ ๋ณด๊ธฐ ์ข๊ฒ ํ๊ธฐ ์ํด ์ค๋ฌด์์ ๊ต์ฅํ ์์ฃผ ์ฐ์ธ๋ค.
8. echo vs printf — ๋ฌด์์ ์ฌ์ฉํด์ผ ํ ๊น?
| ๊ธฐ์ค | echo | printf |
| ์ด์์ฑ | ์๋ง๋ค ๋ค๋ฆ | POSIX ํ์ค, ๋งค์ฐ ์์ ์ |
| escape ์ฒ๋ฆฌ | ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฆ | ํญ์ ๋์ผ |
| ํ์ ์ถ๋ ฅ | ๋ถ๊ฐ๋ฅ | ๊ฐ๋ ฅํจ |
| ์๋ | ๋งค์ฐ ๋น ๋ฆ | ๋น ๋ฆ |
| ์๋ ์ค๋ฐ๊ฟ | ์์ | ์์(์ง์ \n ๋ฃ์ด์ผ ํจ) |
์ฌ๊ธฐ์ ๊ธฐ์ตํด์ผ ํ ์ ์ ํ๋๋ค.
- ์ ํํ ํฌ๋งท์ด ํ์ํ๋ฉด → printf
- ๋จ์ํ ์ถ๋ ฅ์ด๋ฉด → echo
ํนํ ์๋ฒ ๋๋(OpenWrt/BusyBox) ํ๊ฒฝ์ printf๊ฐ ์์ ์๋ ์์ผ๋,
ํ๊ฒฝ์ ๋ฐ๋ผ ๋ฐ๋์ ์ ํํด์ผ ํ๋ค.
9. echo๋ฅผ ์ด์ฉํ ์คํฌ๋ฆฝํธ ๋๋ฒ๊น ๊ธฐ๋ฒ
์ค๋ฌด์์ echo๋ ๋๋ฒ๊น ์ ๊ฑฐ์ ํ์๋ค.
echo "[DEBUG] starting..."
sleep 1
echo "[DEBUG] finished"
CI/CD ์คํฌ๋ฆฝํธ, ๋น๋ ์๋ํ, init.d ์๋น์ค ๋ฑ
์ค๋ฌด์์ echo๋ ๊ฑฐ์ “print debug” ์์ค์ผ๋ก ์ฐ์ธ๋ค.
๋๋ฒ๊น
ํ ๋ ์ด๋ณด๋ค ๊ฐ๋จํ๊ณ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ์๋ค.
10. echo ๋ช ๋ น์ด์์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์
(1) echo -e ๋์ ์ ํจ
์์ธ:
- BusyBox echo
- Dash echo
ํด๊ฒฐ:
printf "Line1\nLine2\n"
(2) ๋ฌธ์์ด์ด ์๋ฆฌ๋ ๋ฌธ์
์์ธ: ๋ฐ์ดํ ๋๋ฝ
ํด๊ฒฐ:
echo "path=/usr/local/bin program=on"
(3) ๋ช ๋ น์ด ํด์ ์ถฉ๋
ํน์ ๋ฌธ์(*, ?, $, &)๊ฐ ํฌํจ๋ ๋ ์ฃผ์.
11. echo์ heredoc ๋น๊ต
๋ฉํฐ๋ผ์ธ ์ถ๋ ฅ ์ echo๋ณด๋ค heredoc์ด ๋ ์ ํฉํ ๊ฒฝ์ฐ๊ฐ ์๋ค.
cat <<EOF > config.ini
[server]
ip=192.168.1.1
port=8080
EOF
์งง์ ํ
์คํธ๋ echo๋ก ์ถฉ๋ถํ๋ค.
๊ธธ์ด์ง๋ฉด heredoc์ด ๊ฐ๋
์ฑ๊ณผ ์ ์ง๋ณด์ ๋ชจ๋์์ ์ ๋ฆฌํ๋ค.
12. OpenWrt·์๋ฒ ๋๋ ํ๊ฒฝ์์ echo์ ์ญํ
์๋ฒ ๋๋์์๋ echo๊ฐ ํ๋์จ์ด ์ ์ด ๋๊ตฌ๊ฐ ๋๊ธฐ๋ ํ๋ค.
์:
echo "[WAN] IP changed to $NEWIP" >> /var/log/net.log
๋ํ /sys/class/leds/ ์ ์ด์๋ echo๋ฅผ ์์ฃผ ์ฌ์ฉํ๋ค.
echo 1 > /sys/class/leds/power/brightness
LED ์ ์ด, sysfs ๊ฐ ์ฝ๊ธฐ/์ฐ๊ธฐ, ๋คํธ์ํฌ ์ค์ ๋ณ๊ฒฝ ๋ฑ
OpenWrt ๊ฐ๋ฐ์ ํ๋ฉด echo๋ฅผ “์์คํ
ํธ์ถ ์์ค”์ผ๋ก ์ฌ์ฉํ๊ฒ ๋๋ค.
13. echo ๊ณ ๊ธ ํ์ฉ ํจํด
ํ๊ฒฝ ๋ณ์ ๊ฒ์ฌ
[ -z "$TOKEN" ] && echo "TOKEN is empty"
ํ๊ฒฝ ์ค์ ์๋ ์์ฑ
echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bash_profile
๋์ ํ ์คํธ ์์ฑ
echo "SERVER=$(hostname)" > info.txt
์ด๋ฐ ํจํด์ ์๋ํ ์คํฌ๋ฆฝํธ์์ ๋งค์ฐ ์์ฃผ ์.
14. echo ๋ณด์ ์ด์
ํน์ ๋ฌธ์ ํฌํจ ์ ์์คํ ๋ช ๋ น์ผ๋ก ์๋ชป ํด์๋ ์ํ์ด ์๋ค.
์:
echo $USER; rm -rf /
๋ฐ๋ผ์ ์์ ํ๊ฒ ์ถ๋ ฅํ๋ ค๋ฉด:
echo "$USER"
๋ฐ์ดํ๋ฅผ ์ ์ฐ๊ณ ์ถ๋ ฅํ๋ค๊ฐ ํน์๋ฌธ์๊ฐ ์์์น ๋ชปํ๊ฒ ๋์ํ๋ ์ฌ๊ณ ๊ฐ ์ข ์ข ๋ฐ์ํ๋ค.
15. echo ๋ช ๋ น์ด์ ํ๊ณ
- ๋ณต์กํ ํฌ๋งท์ ์ด๋ ต๋ค
- ์ด์์ฑ์ด ๋ฎ์ ์ ์์
- ํ๊ฒฝ๋ง๋ค escape ์ฒ๋ฆฌ๊ฐ ๋ค๋ฆ
- ์ฑ๋ฅ์ ๋ฏผ๊ฐํ ๊ณ ์ ํฌ๋งท ์ถ๋ ฅ์๋ ๋ถ์ ํฉ
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํฌ๋งท์ด ์ค์ํ ๊ณณ์ ํญ์ printf ์ฌ์ฉ์ด ๊ถ์ฅ๋๋ค.
16. FAQ
Q1. echo์ printf ์ธ์ ๊ตฌ๋ถํด์ ์จ์ผ ํ ๊น?
A. ์ ๋ฐ ์ถ๋ ฅ์ด๋ฉด printf, ๋จ์ ์ถ๋ ฅ์ด๋ฉด echo.
Q2. BusyBox echo์์ -e๊ฐ ์ ๋จนํ๋ค?
A. printf ์ฌ์ฉํ๋ฉด ๋๋ค.
Q3. echo๋ก ์ปฌ๋ฌ ์ถ๋ ฅ์ ํญ์ ๊ฐ๋ฅ?
A. ํฐ๋ฏธ๋์ด ANSI ์ปฌ๋ฌ๋ฅผ ์ง์ํ ๋๋ง ๊ฐ๋ฅ.
Q4. echo๋ก JSON ์ถ๋ ฅํ๋ฉด ๋ฌธ์ ์๋?
A. ๋ฉํฐ๋ผ์ธ์ printf ๋๋ heredoc๋ ๊ณ ๋ ค.
Q5. echo์์ ๊ณต๋ฐฑ์ด ์ฌ๋ผ์ง๋ ์ด์ ๋?
A. ๋ฐ์ดํ ๋๋ฝ.
17. echo ๋ช ๋ น์ด๋ ์ด๋ค ํจ๊ณผ๋ฅผ ์ฃผ๋๊ฐ?
echo ํ๋๋ง ์ตํ๋ ๋ค์์ด ์ฌ์์ง๋ค.
- ์คํฌ๋ฆฝํธ ๋๋ฒ๊น
- ์๋ํ ๊ตฌ์ฑ
- ์๋ฒ ๋๋/OpenWrt ๊ฐ๋ฐ
- ์ค์ ํ์ผ ์์ฑ
- ํ ์คํธ ํฌ๋งท ์ถ๋ ฅ
๋จ์ํ ๋ช ๋ น์ด์ง๋ง, ๊น์ด ์ดํดํ๋ฉด ์คํฌ๋ฆฝํธ ๋ ๋ฒจ์์์ ์์ฐ์ฑ์ด ๊ทน์ ์ผ๋ก ์ฌ๋ผ๊ฐ๋ค.
“๋จ์ํ ๋๊ตฌ์ผ์๋ก ์ ๋๋ก ์ดํดํ๋ฉด ์์ฐ์ฑ์ด ํญ๋ฐํ๋ค.”
echo ๋ช ๋ น์ด๋ ๊ทธ ๋ํ์ ์ธ ์ฌ๋ก๋ค.
์ด์ ๊ธ ๋ณด๊ธฐ
[Linux] cat์ผ๋ก ํ์ผ ๋ค๋ฃจ๊ธฐ – ์ด๋ณด๋ถํฐ ์ ๋ฌธ๊ฐ๊น์ง ์ดํดํ๋ ์ค์ ๊ฐ์ด๋ ๐