Shell Scripts를 이해하고 편안하게 느낄 것입니다. 필요에 따라 유창하게 작성합니다. 이것은 이 튜토리얼 시리즈의 마지막 게시물로, 약간 복잡한 수학적 연산을 수행할 것입니다. 스크립팅 언어를 사용합니다. 셸 스크립팅의 마지막 4개 기사 연대순으로 나열한 시리즈입니다.
- 기본 Linux 셸 스크립팅 언어 팁 이해 – 1부
- 쉘 프로그래밍을 배우기 위한 Linux 초보자를 위한 5가지 쉘 스크립트 – 2부
- Linux BASH 스크립팅의 세계를 항해하기 – 3부
- Linux 셸 프로그래밍의 수학적 측면 – 파트 IV
피보나치 수열로 시작
각 숫자가 앞의 두 숫자의 합인 숫자 패턴입니다. 시리즈는 0입니다. , 1 , 1 , 2 , 3 , 5 , 8 …… 정의에 따르면, Fibonccai의 처음 두 숫자는 시퀀스는 0과 1입니다.
스크립트 1:피보나치.sh
#!/bin/bash echo "How many numbers do you want of Fibonacci series ?" read total x=0 y=1 i=2 echo "Fibonacci Series up to $total terms :: " echo "$x" echo "$y" while [ $i -lt $total ] do i=`expr $i + 1 ` z=`expr $x + $y ` echo "$z" x=$y y=$z done
샘플 출력
[[email protected] ~]# chmod 755 Fibonacci.sh [[email protected] ~]# ./Fibonacci.sh How many numbers do you want of Fibonacci series ? 10 Fibonacci Series up to 10 terms :: 0 1 1 2 3 5 8 13 21 34
피보나치.sh 다운로드
컴퓨터가 바이너리 형식(예:'0)으로만 이해한다는 사실에 익숙합니다. ' 및 '1 ' 그리고 우리 대부분은 십진수의 변환을 배우는 것을 즐겼습니다. 바이너리로 . 이 복잡한 작업을 위한 간단한 스크립트를 작성하는 것은 어떻습니까?
스크립트 2:Decimal2Binary.sh
#!/bin/bash for ((i=32;i>=0;i--)); do r=$(( 2**$i)) Probablity+=( $r ) done [[ $# -eq 0 ]] &echo -en "Decimal\t\tBinary\n" for input_int in [email protected]; do s=0 test ${#input_int} -gt 11 &printf "%-10s\t" "$input_int" for n in ${Probablity[@]}; do if [[ $input_int -lt ${n} ]]; then [[ $s = 1 ]] && printf "%d" 0 else printf "%d" 1 ; s=1 input_int=$(( $input_int - ${n} )) fi done echo -e done
샘플 출력
[[email protected] ~]# chmod 755 Decimal2Binary.sh [[email protected] ~]# ./Decimal2Binary.sh 1121 Decimal Binary 1121 10001100001
참고 :위의 스크립트는 런타임에 입력을 허용하며 이는 분명히 도움이 됩니다.
Decimal2Binary.sh 다운로드
내장된 'bc ' 명령은 십진수를 변환할 수 있습니다. 바이너리로 한 줄의 스크립트에서. 터미널로 달려가세요.
[[email protected] ~]# echo "obase=2; NUM" | bc
'NUM 바꾸기 ', 십진수에서 변환하려는 숫자 바이너리로 . 예를 들어,
[[email protected] ~]# echo "obase=2; 121" | bc 1111001
다음으로 위의 스크립트와 정반대로 작동하는 스크립트를 작성합니다. 이진 값 변환 소수점으로 .
스크립트 3:Binary2Decimal.sh
#!/bin/bash echo "Enter a number :" read Binary if [ $Binary -eq 0 ] then echo "Enter a valid number " else while [ $Binary -ne 0 ] do Bnumber=$Binary Decimal=0 power=1 while [ $Binary -ne 0 ] do rem=$(expr $Binary % 10 ) Decimal=$((Decimal+(rem*power))) power=$((power*2)) Binary=$(expr $Binary / 10) done echo " $Decimal" done fi
샘플 출력
[[email protected] ~]# chmod 755 Binary2Decimal.sh [[email protected] ~]# ./Binary2Decimal.sh Enter a number : 11 3
참고 :위의 기능은 터미널에서 'bc를 사용하여 수행할 수 있습니다. '로 명령합니다.
[[email protected] ~]# echo "ibase=2; BINARY" | bc
'BINARY 바꾸기 ' 이진수, 즉,
[[email protected] ~]# echo "ibase=2; 11010101" | bc 213
Binary2Decimal.sh 다운로드
마찬가지로 8진수에서 변환을 작성할 수 있습니다. , 16진수 소수점으로 그 반대의 경우도 마찬가지입니다. 'bc를 사용하여 터미널에서 위의 결과를 달성 ' 명령입니다.
10진수에서 8진수로
[[email protected] ~]# echo "obase=8; Decimal" | bc
10진수에서 16진수로
[[email protected] ~]# echo "obase=16; Decimal" | bc
8진수에서 10진수로
[[email protected] ~]# echo "ibase=8; Octal" | bc
16진수에서 10진수로
[[email protected] ~]# echo "ibase=16; Hexadecimal" | bc
2진수에서 8진수로
[[email protected] ~]# echo "ibase=2;obase=8 Binary" | bc
일반 숫자 중 일부 설명과 함께 쉘 스크립팅 언어에서 사용되는 테스트는 다음과 같습니다.
Test : INTEGER1 -eq INTEGER2 Meaning: INTEGER1 is equal to INTEGER2
Test : INTEGER1 -ge INTEGER2 Meaning: INTEGER1 is greater than or equal to INTEGER2
Test: INTEGER1 -gt INTEGER2 Meaning: INTEGER1 is greater than INTEGER2
Test:INTEGER1 -le INTEGER2 Meaning: INTEGER1 is less than or equal to INTEGER2
Test: INTEGER1 -lt INTEGER2 Meaning: INTEGER1 is less than INTEGER2
Test: INTEGER1 -ne INTEGER2 Meaning: INTEGER1 is not equal to INTEGER2
이것이 이 기사와 기사 시리즈의 전부입니다. Shell Script Series의 마지막 기사입니다. 스크립팅 언어에 대한 기사가 다시 여기에 없다는 의미는 아닙니다. 쉘 스크립팅 튜토리얼이 끝났다는 의미일 뿐입니다. 우리가 알 가치가 있는 흥미로운 주제나 귀하의 질문을 찾을 때마다 우리는 기꺼이 시리즈를 계속할 것입니다. 여기.
건강을 유지하고 Tecmint에 연결하세요. . 곧 또 다른 흥미로운 주제를 가지고 올 것입니다. 여러분은 읽고 싶어할 것입니다. 댓글 섹션에서 소중한 생각을 공유하세요. .