웹사이트 검색

Linux 쉘 스크립팅에 대한 실제 인터뷰 질문 및 답변


인터뷰 시리즈 기사에 대한 압도적인 반응으로 우리는 Linux How-to 웹사이트 중 최초로 좋아요, 댓글 피드백, 개인 이메일 주소 형태로 한 기사에서 다음 기사로 이동하게 되었습니다. 기사.

다음은 FTP, MySQL, Apache, 스크립팅, Linux 명령 등 많은 주제를 다룬 linux-console.net에 이미 게시된 인터뷰 시리즈 기사에 대한 링크입니다.

위 시리즈에 계속해서 또 다른 멋진 Linux 인터뷰 질문 5개와 답변을 소개합니다. 성공하려면 귀하(linux-console.net 독자 및 빈번한 방문자)의 지원이 항상 필요합니다.

1. 현재 날짜, 시간, 사용자 이름 및 현재 작업 디렉터리를 가져오는 쉘 스크립트를 작성합니다.

이제 'userstats.sh'라는 파일을 만들고 다음 코드를 추가하세요.

#!/bin/bash 
echo "Hello, $LOGNAME" 
echo "Current date is `date`" 
echo "User is `who i am`" 
echo "Current directory `pwd`"

실행 권한을 부여하고 아래와 같이 스크립트를 실행합니다.

chmod 755 userstats.sh 
./userstats.sh
샘플 출력
Hello, avi 
Current date is Sat Jun  7 13:05:29 IST 2014 
User is avi      pts/0        2014-06-07 11:59 (:0) 
Current directory /home/avi/Desktop
2. 명령줄 인수로 제공된 경우 두 개의 숫자를 추가하고 두 숫자가 입력되지 않은 경우 한 줄의 사용 방법 설명과 함께 오류 메시지를 출력하는 쉘 스크립트를 작성합니다.

다시 'two-numbers.sh'라는 파일을 만들고 다음 내용을 추가합니다.

#!/bin/bash 
The Shebang

if [ $# -ne 2 ] 
If two Inputs are not received from Standard Input

then 
then execute the below statements

    echo "Usage - $0   x    y" 
    # print on standard output, how-to use the script (Usage - ./1.sh   x    y )

    echo "        Where x and y are two nos for which I will print sum" 
    # print on standard output, “Where x and y are two nos for which I will print sum ”

    exit 1 
    # Leave shell in Error Stage and before the task was successfully carried out.

fi 
End of the if Statement.

    echo "Sum of $1 and $2 is `expr $1 + $2`"
    # If the above condition was false and user Entered two numbers as a command Line Argument,   
       it will show the sum of the entered numbers.

파일에 실행자 권한을 설정하고 아래와 같이 스크립트를 실행합니다.

chmod 755 two-numbers.sh

조건 1: 명령줄 인수로 두 개의 숫자를 입력하지 않고 스크립트를 실행하면 다음과 같은 출력이 표시됩니다.

샘플 출력
./two-numbers.sh

Usage - ./two-numbers.sh   x    y 
        Where x and y are two nos for which I will print sum

조건 2: 명령줄 인수로 숫자를 입력하면 표시된 결과를 얻게 됩니다.

./two-numbers.sh 4 5 

Sum of 4 and 5 is 9

따라서 위의 쉘 스크립트는 질문에서 제안한 조건을 충족합니다.

3. 명령줄 인수만 사용하여 입력이 제공되도록 쉘 스크립트를 사용하여 10572라는 주어진 숫자를 역순으로 인쇄해야 합니다. 입력 데이터가 Command Line Argument로 제공되지 않으면 오류가 발생하고 스크립트 사용 방법을 제안해야 합니다. 스크립트를 작성하기 전에 여기서 구현해야 할 알고리즘을 알려주십시오.

연산

  1. 1. 입력 수=n이라고 하자
  2. 2. rev=0, sd=0으로 설정합니다. (역방향 및 한 자리 숫자는 0으로 설정)
  3. 3. n % 10, 가장 왼쪽에 있는 단일 숫자를 찾아 제공합니다.
  4. 4. 역수는 rev * 10 + sd로 생성됩니다.
  5. 5. 입력 개수(n)를 1씩 감소시킵니다.
  6. 6. n > 0이면 3단계로 이동하고 그렇지 않으면 설정 7로 이동합니다.
  7. 7. 개정판 인쇄

이제 다시 'numbers.sh'라는 파일을 만들고 다음 코드를 추가하세요.

#!/bin/bash 
if [ $# -ne 1 ] 
then 
    echo "Usage: $0   number" 
    echo "       I will find reverse of given number" 
    echo "       For eg. $0 0123, I will print 3210" 
    exit 1 
fi 

n=$1 
rev=0 
sd=0 

while [ $n -gt 0 ] 
do 
    sd=`expr $n % 10` 
    rev=`expr $rev \* 10  + $sd` 
    n=`expr $n / 10` 
done 
    echo  "Reverse number is $rev"

파일에 실행 권한을 부여하고 아래와 같이 스크립트를 실행합니다.

chmod 755 numbers.h

조건 1: 입력이 명령줄 인수로 제공되지 않으면 다음과 같은 출력이 표시됩니다.

샘플 출력
./numbers.sh

Usage: ./numbers.sh  number 
       I will find reverse of given number 
       For eg. ./2.sh 123, I will print 321

조건 2: 명령줄 인수로 입력이 제공된 경우.

./numbers.sh 10572 

Reverse number is 27501

위의 스크립트는 완벽하게 작동했으며 출력은 우리에게 필요한 것이었습니다.

4. 쉘 스크립트가 아닌 터미널에서 직접 실수 계산을 계산해야 합니다. 당신은 무엇을 하시겠습니까? (실수는 7.56과 2.453입니다)

예를 들어, bc 명령을 사용하여 실시간으로 숫자를 계산하려면 다음 명령을 실행합니다.

echo 7.56 + 2.453 | bc

10.013
5. 파이 값을 소수점 이하 100자리까지 구해야 하는데, 결과를 얻는 가장 쉬운 방법은 무엇입니까?
pi 100 

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

확실히! 'pi' 패키지가 설치되어 있어야 합니다. apt 또는 yum을 실행하여 사용 중인 배포판에 'pi'를 설치하는 데 필요한 패키지를 얻으세요.

지금은 여기까지입니다. 저는 곧 또 다른 흥미로운 기사로 다시 찾아오겠습니다. 그때까지 계속 지켜봐주시고 linux-console.net에 연결하세요. 아래 댓글 섹션에서 귀중한 피드백을 제공하는 것을 잊지 마세요.