쉘 프로그래머가 명령을 실행하고 운영 체제와 직접 상호 작용할 수 있는 인터페이스입니다. 쉘 스크립팅 쉘이 실행할 수 있는 명령을 제공합니다.
쉘에는 이러한 변수를 조작하는 데 사용되는 변수와 연산자도 있습니다. 쉘 스크립팅에는 5가지 기본 연산자가 있습니다.
- 산술 연산자
- 관계 연산자
- 부울 연산자
- 비트 연산자
- 파일 테스트 연산자
산술 연산자
쉘 스크립팅의 산술 연산자는 일반적인 산술/수학적 연산을 수행하는 데 사용됩니다. 쉘 스크립팅에는 7개의 유효한 산술 연산자가 있습니다 -
-
덧셈(+) 두 개의 피연산자(변수)를 추가하는 데 사용됩니다.
-
빼기(-) 쉘 스크립팅에서 두 변수(피연산자)를 빼는 데 사용됩니다.
-
곱하기(*) 쉘 스크립팅에서 두 변수(피연산자)를 곱하는 데 사용됩니다.
-
나누기(/) 쉘 스크립팅에서 두 변수(피연산자)를 나누는 데 사용됩니다.
-
계수(%) 쉘 스크립팅에서 피연산자의 나눗셈에서 나머지를 찾는 데 사용됩니다.
-
증가 연산자(++) 연산자의 현재 값에 1을 더하는 데 사용됩니다.
-
감소 연산자(--) 연산자의 현재 값에서 하나를 빼는 데 사용됩니다.
예시
쉘 스크립팅에서 산술 연산자의 구현을 보여주기 위해 -
a = 32 b = 23 add = $((a + b)) echo sum of a and b is $add sub = $((a - b)) echo Subtraction of a and b is $sub mul = $((a * b)) echo product of a and b is $mul div = $((a / b)) echo division of a and b is $div mod = $((a % b)) echo remainder when a is divided b is $mod ((++a)) echo Increment operator when applied on "a" results into a = $a ((--b)) echo Decrement operator when applied on "b" results into b = $b
출력
sum of a and b is 55 Subtraction of a and b is 9 product of a and b is 736 division of a and b is 1 remainder when a is divided b is 9 Increment operator when applied on a results into a = 33 Decrement operator when applied on b results into b = 24
관계 연산자
쉘 스크립팅의 관계 연산자는 피연산자 간의 관계를 정의합니다. 이들의 반환 값은 연산자와 피연산자에 따라 true 또는 false입니다. 쉘 스크립팅에는 6가지 유형의 유효한 관계 연산자가 있습니다 -
-
==연산자 두 연산자의 값을 동일시하는 연산자입니다. 값이 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
!=연산자 는 두 연산자의 값을 동일시하고 부등식을 확인하는 연산자입니다. 값이 같지 않으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
<연산자 두 연산자의 값을 비교하는 보다 작음 연산자입니다. 첫 번째 피연산자의 값이 초보다 작으면 연산자는 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
<=연산자 두 연산자의 값을 비교하는 작거나 같음 연산자입니다. 첫 번째 피연산자의 값이 초보다 작거나 같으면 연산자는 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
>연산자 두 연산자의 값을 비교하는 보다 큼 연산자입니다. 첫 번째 피연산자의 값이 초보다 크면 연산자는 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
>=연산자 두 연산자의 값을 비교하는 크거나 같음 연산자입니다. 첫 번째 피연산자의 값이 초보다 크거나 같으면 연산자는 true를 반환하고 그렇지 않으면 false를 반환합니다.
예시
a = 32 b = 67 if(( $a==$b )) then echo a is equal to b. else echo a is not equal to b. fi if(( $a!=$b )) then echo a is not equal to b. else echo a is equal to b. fi if(( $a<$b )) then echo a is less than b. else echo a is not less than b. fi if(( $a<=$b )) then echo a is less than or equal to b. else echo a is not less than or equal to b. fi if(( $a>$b )) then echo a is greater than b. else echo a is not greater than b. fi if(( $a>=$b )) then echo a is greater than or equal to b. else echo a is not greater than or equal to b. fi
출력
a is not equal to b. a is not equal to b. a is less than b. a is less than or equal to b. a is not greater than b. a is not greater than or equal to b.
부울 연산자
논리 연산자라고도 하는 부울 연산자는 셸 스크립팅에서 논리 연산을 수행하는 데 사용됩니다. 쉘 스크립팅에는 3가지 유형의 유효한 논리 연산자가 있습니다 -
-
논리 AND(&&) 부울 값의 논리 AND를 계산합니다. 두 피연산자가 모두 true이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
논리적 OR(||) 부울 피연산자의 논리적 OR 연산을 계산합니다. 두 피연산자가 모두 거짓이면 거짓을 반환하고 그렇지 않으면 참을 반환합니다.
-
논리적으로 같지 않음(!) 전달된 단일 연산자의 부정을 계산합니다. 피연산자의 값이 true이면 false를 반환하고 그렇지 않으면 true를 반환합니다.
예시
a = true b = false if(($a == "true" & $b == "true" )) then echo Both are true. else echo Both are not true. fi if(($a == "true" || $b == "true" )) then echo Atleast one of them is true. else echo None of them is true. fi if(( ! $a == "true" )) then echo "a" was intially false. else echo "a" was intially true. fi
출력
Both are not true. Atleast one of them is true a was intially true.
비트 연산자는 비트 변수에 대해 비트 연산을 수행하는 연산자입니다. 쉘 스크립팅에는 6가지 유형의 비트 연산자가 있습니다 -
-
비트 AND(&) 피연산자의 비트에 대해 이진 AND 연산을 수행하는 연산자입니다. 즉, 첫 번째 변수의 각 비트가 두 번째 연산자의 각 비트로 연산됩니다.
-
비트 OR(|) 피연산자의 비트에 대해 이진 OR 연산을 수행하는 연산자입니다. 즉, 첫 번째 변수의 각 비트는 두 번째 연산자의 각 비트로 연산됩니다.
-
비트별 XOR(^) 피연산자의 비트에 대해 이진 XOR 연산을 수행하는 연산자입니다. 즉, 첫 번째 변수의 각 비트는 두 번째 연산자의 각 비트로 연산됩니다.
-
비트별 보수(~) 피연산자의 비트에 대해 이진 NOT 연산을 수행하는 연산자입니다. 즉, 첫 번째 변수의 각 비트는 두 번째 연산자의 각 비트로 연산됩니다.
-
비트 단위 왼쪽 시프트(<<) 연산자의 오른쪽에 지정된 n번 피연산자의 비트를 왼쪽으로 이동하는 연산자입니다.
-
비트 단위 왼쪽 시프트(>>) 연산자의 오른쪽에 지정된 n번 피연산자의 비트를 오른쪽으로 이동하는 연산자입니다.
예시
a = 14 b = 67 bitwiseAND=$(( a&b )) echo Bitwise AND of a and b is $bitwiseAND bitwiseOR=$(( a|b )) echo Bitwise OR of a and b is $bitwiseOR bitwiseXOR=$(( a^b )) echo Bitwise XOR of a and b is $bitwiseXOR bitiwiseComplement=$(( ~a )) echo Bitwise Compliment of a is $bitiwiseComplement leftshift=$(( a<<1 )) echo Left Shift of a is $leftshift rightshift=$(( b>>1 )) echo Right Shift of b is $rightshift입니다.
출력
Bitwise AND of a and b is 2 Bitwise OR of a and b is 79 Bitwise XOR of a and b is 77 Bitwise Compliment of a is -15 Left Shift of a is 28 Right Shift of b is 33
파일 테스트 연산자
파일 테스트 연산자는 파일의 특정 속성을 테스트하는 데 사용됩니다. 파일 테스트 연산자 중 일부는 다음과 같습니다.
-
-b 연산자 지정된 파일이 블록 특수 파일인지 확인하는 데 사용됩니다. 파일이 블록 특수 파일이면 함수는 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
-연산자 주어진 파일의 크기를 확인하는 데 사용되는 연산자입니다. 파일 크기가 0보다 크면 true를 반환하고 그렇지 않으면 false를 반환합니다.
-
-r 연산자 파일 내용 읽기에 대한 접근 권한이 부여되었는지 여부를 확인하는 연산자입니다. 읽기 액세스가 허용되면 true, 그렇지 않으면 false를 반환합니다.
-
-w 연산자 파일에 쓰기 권한이 부여되었는지 여부를 확인하는 연산자입니다. 쓰기 권한이 부여되면 true, 그렇지 않으면 false를 반환합니다.
-
-x 연산자 파일 실행에 대한 접근 권한이 부여되었는지 여부를 확인하는 연산자입니다. 실행 액세스가 허용되면 true, 그렇지 않으면 false를 반환합니다.