[Linux] Shell Script ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์ •๊ทœ ํ‘œํ˜„์‹
ยท
Linux
๋”๋ณด๊ธฐ๋”๋ณด๊ธฐ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์…ธ ์Šคํฌ๋ฆฝํŠธ ์ฑ… ์ฐธ๊ณ ์ •๊ทœ ํ‘œํ˜„์‹POSIX ๊ธฐ๋ณธ ๋ฐ ํ™•์žฅ ๋ฌธ๋ฒ•์ •๊ทœ ํ‘œํ˜„์‹ โžก๏ธ ์ผ์น˜ํ•˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ํŒจํ„ด์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŠน์ • ํ‘œ์ค€ ํ…์ŠคํŠธ์˜ ๋ฌธ๋ฒ•์„ ์˜๋ฏธ.ํŒจํ„ด์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฌธ์ž์—ด ๋‚ด์˜ ๊ฐ ๋ฌธ์ž๋“ค์€ ๋ฉ”ํƒ€ ๋ฌธ์ž๋‚˜ ์ •๊ทœ ๋ฌธ์ž๋กœ ์ดํ•ด๋จ.๋ฉ”ํƒ€ ๋ฌธ์ž์„ค๋ช….๋‰ด๋ผ์ธ์„ ์ œ์™ธํ•œ ํ•œ ๊ฐœ์˜ ๋ฌธ์ž์™€ ์ผ์น˜.?์ž์‹  ์•ž์— ๋‚˜์˜ค๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์ด ์—†๊ฑฐ๋‚˜ ํ•˜๋‚˜๊ฐ€ ์ผ์น˜ํ•˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„ ํ•œ ๊ฐœ์˜ ๋ฌธ์ž์™€ ๋งค์นญํ•  ๋•Œ ์‚ฌ์šฉ.*๋ฐ”๋กœ ์•ž ๋ฌธ์ž์—ด์ด๋‚˜ ์ •๊ทœ ํ‘œํ˜„์‹์—์„œ ํ•œ ๋ฒˆ ์ด์ƒ ๋ฐ˜๋ณต๋˜๋Š” ๋ฌธ์ž๋ฅผ ์˜๋ฏธ.+์ž์‹  ์•ž์— ๋‚˜์˜ค๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ •๊ทœ ํ‘œํ˜„์‹๊ณผ ์ผ์น˜. *๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜ ์ด์ƒ์ผ ๊ฒฝ์šฐ์—๋งŒ ์ผ์น˜.{N}์ •ํ™•ํžˆ N๋ฒˆ ์ผ์น˜.{N,}N๋ฒˆ ๋˜๋Š” ๊ทธ ์ด์ƒ ์ผ์น˜.{N, M}์ ์–ด๋„ N๋ฒˆ ์ผ์น˜ํ•˜์ง€๋งŒ, M๋ฒˆ ์ผ์น˜๋ฅผ ๋„˜์ง€ ์•Š..
[Linux] Shell Script ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์—ฐ์‚ฐ์ž
ยท
Linux
๋”๋ณด๊ธฐ๋”๋ณด๊ธฐ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์…ธ ์Šคํฌ๋ฆฝํŠธ ์ฑ… ์ฐธ๊ณ ์—ฐ์‚ฐ์žํฌ๊ฒŒ ๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ž, ๋น„๊ต ๋ฐ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž, ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ฐ์‚ฐ์ž, ํŒŒ์ผ ์—ฐ์‚ฐ์ž ๋ฐ ํŒŒ์ผ ๋น„๊ต ์—ฐ์‚ฐ์ž๋กœ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ.๋ฌธ์ž์—ด ์—ฐ์‚ฐ์ž๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๋ฌธ์ž์—ด์ธ ๊ฒฝ์šฐ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ž.ํ•ด๋‹น ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€์ˆ˜์— ์ˆซ์ž ๋˜๋“ , ํŒŒ์ผ๋ช…์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ๊ฐ™์€ ๊ฐ์ฒดํ˜•์˜ ๊ฐ’์ด ์ €์žฅ๋˜๋“  ์ƒ๊ด€์—†์ด ๋ชจ๋‘ ๋ฌธ์ž์—ด๋กœ ์ทจ๊ธ‰.์—ฐ์‚ฐ์ž์‚ฌ์šฉ๋ฒ•์„ค๋ช…-zif [-z $๋ณ€์ˆ˜]๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 0์ด๋ฉด ์ฐธ-nif [-n $๋ณ€์ˆ˜]๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹ˆ๋ฉด ์ฐธ๋ฌธ์ž์—ด ๋ณ€์ˆ˜๊ฐ€ NULL ๊ฐ’์ธ์ง€ ์ฒดํฌํ•  ๊ฒฝ์šฐ~$ cat if_example1.sh#!/bin/bashif [ -z $1 ]then echo Trueelse echo Falsefi~$ sh if_example1.shTrue..
[Linux] Shell Script ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ
ยท
Linux
์กฐ๊ฑด๋ฌธ if, switch-caseif๋ฌธ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•if [์ฒซ ๋ฒˆ์งธ ์กฐ๊ฑด์‹]then ์ˆ˜ํ–‰๋ฌธelif [๋‘ ๋ฒˆ์งธ ์กฐ๊ฑด์‹]then ์ˆ˜ํ–‰๋ฌธelse ์ˆ˜ํ–‰๋ฌธfiif, then, else, fi๋Š” ๋ฐ˜๋“œ์‹œ ๊ธฐ์ž…์„ ํ•ด์•ผ ํ•จ. ์กฐ๊ฑด์‹ ์•ž๋’ค๋กœ๋Š” ๋ฐ˜๋“œ์‹œ ๋Œ€๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ๋Œ€๊ด„ํ˜ธ์™€ ์กฐ๊ฑด์‹ ์‚ฌ์ด์—๋Š” ๋ฐ˜๋“œ์‹œ ํ•œ ์นธ์˜ ์ŠคํŽ˜์ด์Šค๋ฅผ ๋‘์–ด์•ผ ํ•จ.์กฐ๊ฑด์‹ ํƒ€์ž…์กฐ๊ฑด์‹ ํƒ€์ž…์„ค๋ช…if [$๋ณ€์ˆ˜ ์—ฐ์‚ฐ์ž $๋ณ€์ˆ˜ ]; then์ผ๋ฐ˜์ ์ธ ์กฐ๊ฑด์‹ ํƒ€์ž…์œผ๋กœ ๋‘ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ ์“ฐ์ž„.if [$๋ณ€์ˆ˜ ์—ฐ์‚ฐ์ž ์กฐ๊ฑด๊ฐ’ ]; then์กฐ๊ฑด๊ฐ’์ด ๊ณ ์ •๋˜์–ด ์žˆ์„ ๊ฒฝ์šฐ ๋ณ€์ˆ˜์™€ ์กฐ๊ฑด๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ ์‚ฌ์šฉ.if [์—ฐ์‚ฐ์ž $๋ณ€์ˆ˜]; then๋ณ€์ˆ˜์˜ ๊ฐ’์ด ๋ฌธ์ž์—ด์ด๊ฑฐ๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์ผ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉ.if [์กฐ๊ฑด์‹] ์—ฐ์‚ฐ์ž [์กฐ๊ฑด์‹]; then์—ฌ๋Ÿฌ ๊ฐœ์˜ ์กฐ๊ฑด..
[Linux] Shell Script ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ(2)
ยท
Linux
๋งค๊ฐœ๋ณ€์ˆ˜ ํ™•์žฅ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋ฉด ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•  ๋•Œ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์„ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.3ํ•ญ ์—ฐ์‚ฌ์ž์™€ ์œ ์‚ฌํ•œ ์—ฐ์‚ฐ๋“ค์„ ๋ณ€์ˆ˜์— ์‚ฌ์šฉ ๊ฐ€๋Šฅ. ์ด๋Ÿฐ ๋ณ€์ˆ˜๋“ค์€ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ํ•จ์ˆ˜ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ํŒŒ๋ผ๋ฏธํ„ฐ์— ์˜ํ•ด ์ž…๋ ฅ๋ฐ›์€ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์‚ฌ์šฉ ๋ฒ”์œ„๋ฅผ ํ™•์žฅ์‹œ์ผœ ์คŒ.๊ธฐ๋ณธ ๋ณ€์ˆ˜ ์‚ฌ์šฉ๋ฒ•$ ๋’ค์— ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ช…์„ ์ž…๋ ฅํ•จ์œผ๋กœ์จ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋กœ๋Š” ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž์—ด ์‚ฌ์ด์—์„œ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์„ ์น˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ๋„ ์žˆ์Œ. ์ด๋Ÿฐ ๊ฒฝ์šฐ์— $๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ์€ ์–ด๋””์„œ๋ถ€ํ„ฐ ์–ด๋””๊นŒ์ง€๊ฐ€ ๋ณ€์ˆ˜๋ช…์ธ์ง€ ์ธ์‹ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ธกํ•˜์ง€ ๋ชปํ•œ ๊ฒฐ๊ด๊ฐ’์„ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋จ. ์ด๋Ÿฐ ๊ฒฝ์šฐ์— $์™€ ํ•จ๊ป˜ ์ค‘๊ด„ํ˜ธ๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ์‹œ์Šคํ…œ์€ ์‰ฝ๊ฒŒ ๋ณ€์ˆ˜๋ช…์„..
[Linux] Shell Script ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ(1)
ยท
Linux
Shell Script๋ž€?Unix๋‚˜ Linux ๋˜๋Š” POSIX Portable Operating System Interface๋ฅผ ์ง€์›ํ•˜๋Š” ์šด์˜์ฒด์ œ์ธ macOS ๋“ฑ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค๊ณผ if, for์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์ธ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด.Shell Script ์ž‘์„ฑ ๋ฐ ์‹คํ–‰์ผ๋ฐ˜์ ์œผ๋กœ ์…ธ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค ๋•Œ๋Š” sh ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉ. ๊ทธ๋ฆฌ๊ณ  #!/bin/bash๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ž‘์„ฑํ•˜์—ฌ ์…ธ ์Šคํฌ๋ฆฝํŠธ์ž„์„ ๋ช…์‹œ.Shell Script ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ 2๊ฐ€์ง€. ์ฒซ๋ฒˆ์งธ๋Š” sh ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•.$ sh myshell.sh๋‘ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ์ƒ์„ฑํ•œ ์Šคํฌ๋ฆฝํŠธ์— ์‹คํ–‰ ๊ถŒํ•œ์„ ์ฃผ๊ณ  ์ง์ ‘ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•.$ chmod +x myshell.sh$ ./myshell..