${variable}을 사용시 변수에대한 직접 적인 세부 조작이 가능하다.
array="TEST"
echo "$array:0:1" => 결과 : TEST:0:1
echo "${array:0:1}" => 결과 : T
문자열 비교
if [ ${variable} = 10 ]
if [ "${variable}" = 10 ]
차이가 없다.
문자 비교 연상자 = or != 사용시 양쪽 모두 string으로 인식하여 처리하기 때문이다.
권고 : 문자 비교시 ""를 붙이는것이 좋다.
숫자 비교
if [ ${variable} -eq 10 ]
if [ ${variable} -eq "10" ]
if [ "${variable}" -eq 10 ]
if [ "${variable}" -eq "10" ]
차이가 없다.
숫자를 비교하는 비교 연산자, -eq , -gt -lt 에서는 양쪽 피연산자를 모두 숫자로 인식하여 하기 때문이다.
권고 : 숫자 비교시 ""를 붙이지 않는게 좋다.
파일 명이 info.cfg 라 할때
if [ -e "info.cfg" ]
if [ -e info.cfg ]
차이가 없다.
비교 대상을 모두 문자열로 인식하여 처리 하기때문이다.
나름의 권고 : 파일 비교시 모두 ""를 붙이는것이 좋다.
-n STRING : STRING의 길이가 0보다 큽니다.
-z STRING : STRING의 길이가 0입니다 (즉, 비어 있다.)
-d FILE : 파일이 존재하고 디렉토리입니다.
-e FILE : 파일이 존재합니다.
-r FILE : 파일이 존재하고 읽기 권한이 부여되었습니다.
-s FILE : 파일이 존재하고 크기가 0보다 큽니다 (즉, 비어 있지 않다).
-w FILE : 파일이 존재하고 쓰기 권한이 부여되었습니다.
-x FILE : 파일이 존재하고 실행 권한이 부여되었습니다.