[ 변수 정리 ]
1. ${variable} 과 $variable 의 차이 점
- ${variable}을 사용시 변수에대한 직접 적인 세부 조작이 가능한다.
array="TEST"
echo "$array:0:1" => 결과 : TEST:0:1
echo "${array:0:1}" => 결과 : T
[ 비교 문 정리 ]
1. 문자열 비교
if [ ${variable} = 10 ] VS if [ "${variable}" = 10 ]
- 차이 전혀 없다.
- 문자 비교 연상자 " = != " 사용시 양쪽 모두 string으로 인식하여 처리하기 때문이다.
- 나름의 권고 : 문자 비교시 ""를 붙이자.
2. 숫자 비교
if [ ${variable} -eq 10 ] VS
if [ ${variable} -eq "10" ] VS
if [ "${variable}" -eq 10 ] VS
if [ "${variable}" -eq "10" ]
- 차이 전혀 없다.
- 숫자를 비교하는 비교 연산자, -eq , -gt -lt 에서는 양쪽 피연산자를 모두 숫자로 인식하여 하기 떄문이다.
- 나름의 권고 : 숫자 비교시 ""를 붙이지 말자
3. 파일 비교
* 파일 명이 info.cfg 라 할때
if [ -e "info.cfg" ] VS if [ -e info.cfg ]
- 차이 전혀 없다.
- 비교 대상을 모두 문자열로 인식하여 처리 하기때문이다.
- 나름의 권고 : 파일 비교시 모두 ""를 붙이자.
[ if 문 연산자 정리 ]
OperatorDescription
https://ryanstutorials.net/bash-scripting-tutorial/bash-if-statements.php
! EXPRESSION | The EXPRESSION is false. |
-n STRING | The length of STRING is greater than zero. |
-z STRING | The lengh of STRING is zero (ie it is empty). |
STRING1 = STRING2 | STRING1 is equal to STRING2 |
STRING1 != STRING2 | STRING1 is not equal to STRING2 |
INTEGER1 -eq INTEGER2 | INTEGER1 is numerically equal to INTEGER2 |
INTEGER1 -gt INTEGER2 | INTEGER1 is numerically greater than INTEGER2 |
INTEGER1 -lt INTEGER2 | INTEGER1 is numerically less than INTEGER2 |
-d FILE | FILE exists and is a directory. |
-e FILE | FILE exists. |
-r FILE | FILE exists and the read permission is granted. |
-s FILE | FILE exists and it's size is greater than zero (ie. it is not empty). |
-w FILE | FILE exists and the write permission is granted. |
-x FILE | FILE exists and the execute permission is granted. |
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
한글 encoding 차이로 인한 memcmp 및 strncmp 동자 오류 (0) | 2018.03.21 |
---|---|
[libcurl] post data 전송 (0) | 2018.03.21 |
메모리 맵 관련 함수 (0) | 2017.05.04 |
리눅스 프로세스별 메모리 사용량 확인법 (0) | 2017.01.24 |
Linux 분할 컴파일시 유의 사항. (2) | 2017.01.11 |