Command Substitution์ด๋?
Command Substitution์ ๋ช ๋ น์ด์ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ช ๋ น์ด์ ์ผ๋ถ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ Shell์ ๊ธฐ๋ฅ์ด๋ค. ๋ง์น ์๋ฆฌ ์ค์ ํ ์๋ฆฌ์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ค๋ฅธ ์๋ฆฌ์ ์ฌ๋ฃ๋ก ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ, ํ ๋ช ๋ น์ด์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ๋ช ๋ น์ด์ ์ ๋ ฅ์ผ๋ก ํ์ฉํ ์ ์๋ค.
๊ธฐ๋ณธ ๋์ ๋ฐฉ์
Command Substitution์ ๋ ๊ฐ์ง ๋ฌธ๋ฒ์ ์ ๊ณตํ๋ค:
- ์๋ก์ด ๋ฌธ๋ฒ:
$(command) - ์ ํต์ ์ธ ๋ฌธ๋ฒ:
command(๋ฐฑํฑ)
์ค์ ์ฌ์ฉ ์์
1. ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ
# ํ์ฌ ๋ ์ง๋ฅผ ํ์ผ ์ด๋ฆ์ผ๋ก ์ฌ์ฉ
touch backup-$(date +%Y%m%d).txt
# ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํ์ผ ๊ฐ์ ์ ์ฅ
file_count=$(ls -1 | wc -l)
# ์์คํ
์ ๋ณด๋ฅผ ๋ณ์์ ์ ์ฅ
kernel_version=$(uname -r)2. ๋ช ๋ น์ด ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ๋ช ๋ น์ด์ ์ธ์๋ก ์ฌ์ฉ
# ๊ฐ์ฅ ํฐ ์ฉ๋์ ํ์ผ ์ฐพ๊ธฐ
largest_file=$(du -h * | sort -rh | head -n 1 | cut -f2)
echo "๊ฐ์ฅ ํฐ ํ์ผ์ $largest_file ์
๋๋ค"
# ํน์ ํ๋ก์ธ์ค ์ข
๋ฃ
kill $(pgrep firefox)๊ณ ๊ธ ํ์ฉ๋ฒ
1. ์ค์ฒฉ ์ฌ์ฉ
# ๋๋ ํ ๋ฆฌ ์์ฑ ํ ๊ทธ ์์ผ๋ก ์ด๋
cd $(mkdir -p $(date +%Y)/$(date +%m) && echo $(date +%Y)/$(date +%m))2. ๋ฃจํ์์ ํ์ฉ
# ๋ชจ๋ .txt ํ์ผ์ ๋ด์ฉ ํฉ์น๊ธฐ
for file in $(find . -name "*.txt"); do
cat "$file" >> combined.txt
echo "์ฒ๋ฆฌ๋ ํ์ผ: $file"
done์ฃผ์์ฌํญ
- ๋ช ๋ น์ด ์คํ ์คํจ ์ ๋น ๋ฌธ์์ด ๋ฐํ
- ๊ณต๋ฐฑ์ด ํฌํจ๋ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ์ ๋ฐ์ดํ ํ์
- ํฐ ์ถ๋ ฅ ๊ฒฐ๊ณผ ์ฒ๋ฆฌ ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฃผ์
- ์ฌ๊ท์ ์ฌ์ฉ ์ ์ฑ๋ฅ ์ํฅ ๊ณ ๋ ค
์ค์ฉ์ ํ์ฉ ์ฌ๋ก
1. ๋ฐฑ์ ์คํฌ๋ฆฝํธ
# ๋ ์ง๋ฅผ ํฌํจํ ๋ฐฑ์
์์ฑ
backup_dir="/backup/$(date +%Y%m%d)"
mkdir -p "$backup_dir"
tar czf "$backup_dir/backup.tar.gz" $(find . -mtime -1 -type f)2. ์์คํ ๋ชจ๋ํฐ๋ง
# ์์คํ
๋ฆฌ์์ค ์ฌ์ฉ๋ ๊ธฐ๋ก
echo "๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋: $(free -h | grep Mem | awk '{print $3}')"
echo "๋์คํฌ ์ฌ์ฉ๋: $(df -h / | tail -1 | awk '{print $5}')"3. ๋์ ์ค์ ํ์ผ ์์ฑ
cat > config.json << EOF
{
"hostname": "$(hostname)",
"ip_address": "$(hostname -I | awk '{print $1}')",
"kernel": "$(uname -r)",
"timestamp": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
}
EOF์ฑ๋ฅ๊ณผ ๋ณด์ ๊ณ ๋ ค์ฌํญ
- ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ํ์ดํ ์ฌ์ฉ ๊ถ์ฅ
- ๋ช ๋ น์ด ์ธ์ ์ ๋ฐฉ์ง๋ฅผ ์ํ ์ ๋ ฅ ๊ฒ์ฆ
- ์๋ฌ ์ฒ๋ฆฌ์ ์ข ๋ฃ ์ํ ํ์ธ
- ๋ฆฌ์์ค ์ฌ์ฉ๋ ๋ชจ๋ํฐ๋ง
๋์๊ณผ ๋น๊ต
- ํ์ดํ๋ผ์ธ (
|)- ์ฅ์ : ๋ฉ๋ชจ๋ฆฌ ํจ์จ์
- ๋จ์ : ๋ณ์ ์ ์ฅ ๋ถ๊ฐ
- ํ๋ก์ธ์ค ์นํ (
<(command))- ์ฅ์ : ํ์ผ์ฒ๋ผ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ๋จ์ : ๋ฌธ๋ฒ์ด ๋ ๋ณต์ก
๊ฒฐ๋ก
Command Substitution์ Shell ์คํฌ๋ฆฝํ ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ผ๋ก, ๋ช ๋ น์ด์ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ ์ปจํ ์คํธ์์ ์ ์ฐํ๊ฒ ํ์ฉํ ์ ์๊ฒ ํด์ค๋ค. ์ ์ ํ ์ฌ์ฉํ๋ฉด ์คํฌ๋ฆฝํธ์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค.