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. 입력 수=n이라고 하자
- 2. rev=0, sd=0으로 설정합니다. (역방향 및 한 자리 숫자는 0으로 설정)
- 3. n % 10, 가장 왼쪽에 있는 단일 숫자를 찾아 제공합니다.
- 4. 역수는 rev * 10 + sd로 생성됩니다.
- 5. 입력 개수(n)를 1씩 감소시킵니다.
- 6. n > 0이면 3단계로 이동하고 그렇지 않으면 설정 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에 연결하세요. 아래 댓글 섹션에서 귀중한 피드백을 제공하는 것을 잊지 마세요.