Shell 9

The linux command line - 36. exotica

36. Exotica 책의 마지막 장에서는 자주 사용하지는 않지만 특정 상황에서 도움이 되는 bash 명령어들을 살펴볼 것. Group commands and subshells 아래 문법으로 사용한다. # group command { command1; command2; [command3; ...] } # subshell (command1; command2; [command3;...])둘 다 redirection을 관리하는데서 사용된다. 여러 명령에서 redirection을 수행하는 스크립트를 생각해보자. ls -l > output.txt echo "foo.txt" >> output.txt cat foo.txt >> output.txt위 명령어는 각 명령어의 output들을 output.txt에 적는 간단..

backend/ubuntu 2021.08.01

The linux command line - 35. array

35. Array 지금까지 살펴본 변수는 단일 값을 포함하는 스칼라 변수. 이번 장에서는 여러 값을 보유하는 array 데이터 구조를 살펴보고 쉘에서 이를 다루는 방식을 정리. What is array? 배열은 한 번에 둘 이상의 값을 보유하는 변수. 대부분의 프로그래밍 언어는 다차원 배열을 지원하지만 bash의 배열은 단일 차원으로 제한됨. bash 2에서 처음 array를 지원. sh에서는 array를 지원하지 않음. Create array array 변수는 다른 bash 변수와 마찬가지로 이름이 지정 [me@linuxbox ~]$ a[1]=foo [me@linuxbox ~]$ echo ${a[1]} foodeclare를 사용해서 만들수도 있음. [me@linuxbox ~]$ declare -aaAs..

backend/ubuntu 2021.07.25

The linux command line - 34. string and numbers

34. Strings and numbers 33장에서는 파일 수준의 데이터를 처리하는데 중점을 두었지만, 많은 프로그래밍 문제는 작은 데이터 단위를 사용해서 해결하는 경우들이 많음. 이번 챕터에서는 문자열과 숫자를 조작하는데 사용되는 쉘 기능을 다룸. Parameter expansion 이전 장에서 이미 쉘 변수와 같은 몇몇 parameter expansion을 다뤄보았다. 쉘은 훨씬 많은 기능을 제공함. 특별한 이유가 없지 않으면 parameter expansion을 큰따옴표로 묶는것이 좋음. Basic parameters 가장 단순한 형태는 일반적인 변수 형태. 중괄호로 묶을수도 있음. $a ${a}중괄호는 큰 영향을 미치니 않지만 다른 텍스트와 인접한 경우 사용됨. a="foo" echo "$a_f..

backend/ubuntu 2021.07.18

33 - flow control: for loop (The Linux command line book)

33. Flow control: looping with for for loop는 이전에 다룬 while과 until과는 다르게 processing sequence를 제공한다. for: traditional shell form 전통적인 형태의 for문은 다음과 같이 사용. for variable [in words]; do commands donefor문은 command line에서도 유용하게 사용될 수 있다. [me@linuxbox ~]$ for i in A B C D; do echo $i; done A B C Dfor문의 강력한 기능 중 하나는 word list를 동적으로 만들 수 있다는 점. brace expansion을 사용 가능. [me@linuxbox ~]$ for i in {A..D}; do e..

backend/ubuntu 2021.07.04

The linux command line: 32 - positional parameters

32. Positional parameters shell 프로그램이 command line에서 컨텐츠를 받을 수 있는 법을 다룸. Accessing the command line shell은 positional parameter라고 불리는 변수를 제공함. 이 변수는 0~9까지 이름이 붙어있고, 다음 방식으로 사용됨. #!/bin/bash # posit-param: script to view command line parameters echo " \$0 = $0 \$1 = $1 \$2 = $2 \$3 = $3 \$4 = $4 \$5 = $5 \$6 = $6 \$7 = $7 \$8 = $8 \$9 = $9 "이를 파라미터 없이 실행시키면 다음과 같음. [me@linuxbox ~]$ posit-param $0..

backend/ubuntu 2021.06.27

linux command line: branching - shell script로 flow control 하기

27. Flow control: branching with if 위에서 만든 스크립트에서 user의 권한에 따라 스크립트의 내용을 변경해야 한다고 생각해보자. programming 용어로 branch가 필요하다. If statement pseudo code로 아래와 같은 내용을 생각 X = 5 If X = 5 then: Say "X equals 5." Otherwise: Say "X is not equal to 5"shell에서는 이를 if/else문을 이용해 나타낼 수 있음. x=5 if [ "$x" -eq 5 ]; then echo "x equals 5." else echo "x does not equal 5." fi이는 command line에서도 동일하게 사용할 수 있다. $ x=5 $ if [ ..

카테고리 없음 2021.05.09

linux: shell script로 프로그램 만들어보기

25. Starting a project 해당 챕터에서는 실제 프로그램을 만들어봄. report generator: system과 status에 대한 다양한 통계를 HTML 포맷으로 생성해주는 프로그램 First stage: minimul document Page body. 간단한 html을 만들어보자. (foo.html) 이 파일의 경로를 입력하면 firefox나 chrome 등의 브라우저에서 열 수 있다. (file://hoem/username//foo.html) 프로그램의 첫번째 스테이지는 standard output으로 이 HTML 파일을 보내게 하는 것이다. ~/bin/sys_info_page라는 파일을 만들고 수정해보자. #!/bin/bash # Program to output a system..

tools/linux 2021.04.25

리눅스 쉘 스크립트란? 첫 쉘 스크립트를 만들고 써보자

지금까지는 command line의 tools들을 사용하였다. 이는 많은 컴퓨팅 문제를 해결해주긴 하지만, 이들만으로 해결하기 힘든 문제들도 있다. 이 다양한 툴들을 사용하여 자신만의 프로그램을 작성한다면, shell에서 더 복잡한 태스크들도 실행시킬 수 있는데 이를 shell scripts라고 부른다. shell script란? 간단하게, 쉘 스크립트는 "여러 명령어들을 담은 파일"이다. 쉘은 이 파일을 읽고 명령어를 실행시켜 준다. 쉘 스크립트는 어떻게 동작할까 쉘 스크립트를 만들고 실행하기 위해서, 세가지 단계를 해야한다. Write a script: shell scipt는 text file이다. syntax highlighting이 지원되는 에디터에서 쓰면 더 좋다. Make the script ..

backend/ubuntu 2021.04.04