제1 2 장 셸 스 크 립 트 의 변수: 방과 후 연습 문제 와 답
3735 단어 Linuxshell스 크 립 트 변수Linux 성장 의 길
#
2. 셸 스 크 립 트 를 어떻게 실행 합 니까?
bash 1.sh chmod +x 1.sh; ./1.sh
3. 관리 하기 편 하도록 셸 스 크 립 트 를 어느 디 렉 터 리 에 두 기로 약 속 했 습 니까?
/usr/local/sbin/
4. 셸 스 크 립 트 를 더 잘 디 버 깅 하기 위해 서 는 셸 스 크 립 트 의 실행 과정 을 관찰 할 수 있 는 옵션 을 추가 할 수 있 습 니 다. 어떤 옵션 입 니까?
bash -x 1.sh
5. 날짜 명령 으로 5 일 전 날 짜 를 인쇄 합 니 다. 요구 날짜 형식 은 xxxx - xx - xx 입 니 다.
date -d "5 days ago" +%Y-%m-%d
date -d "-5 day" +%F
6. 아 밍 의 대본 에 문제 가 있 는 지 판단 하 세 요.
#! /bin/bash
a = 1
b = 2
echo $a, $b
변수 값 을 할당 할 때 빈 칸 을 가 져 왔 습 니 다.
7. 셸 스 크 립 트 에서 수학 연산 을 어떻게 사용 합 니까?예 를 들 어 설명해 주세요.
a=1; b=2
c=$[$a+$b]
echo $c
8. 셸 스 크 립 트 에 스 크 립 트 와 사용자 의 상호작용 을 실현 할 수 있 는 명령 이 있 습 니 다. 어떤 명령 입 니까? 어떻게 사용 합 니까?
read -p
read -p "Please input a number" n
n
9. 셸 에서 크기 나 판단 은 어떻게 합 니까?
-gt -lt -ne -ge -le :
if [ $a -ge 0 ]; then ... ;fi
10. 셸 스 크 립 트 에서 어떤 기호 로 표시 하고 어떤 기호 로 표시 하거나?
&&
||
11. 셸 스 크 립 트 에서 케이스 논리 판단 의 구 조 는 어떤 것 입 니까?
case $a in
1)
command
;;
2)
command
;;
*)
command
;;
esac
12. 셸 스 크 립 트 에서 자주 사용 하 는 순환 구 조 를 열거 합 니 다.
for a in ... ; do ... ; done
while ...; do ...; done
13. 셸 스 크 립 트 에서 함수 의 역할 은 무엇 입 니까?함수 구 조 는 어떤 것 입 니까?
함 수 는 셸 스 크 립 트 의 작은 코드 유닛 으로 이해 할 수 있 습 니 다. 이 코드 를 사용 하려 면 함수 이름 을 직접 호출 하면 됩 니 다. 이 코드 를 반복 적 으로 쓰 지 않 고 코드 작성 효율 과 질 을 향상 시 킵 니 다.
함수
function fu_name() {
.....
}
14. 스 크 립 트 를 작성 하여 한 디 렉 터 리 에 있 는 모든 파일 (디 렉 터 리 포함 하지 않 음) 을 파일 이름 뒤에 'bak' 를 추가 합 니 다.
#! /bin/bash
for f in `find . -type f`; do mv $f $f.bak; done
혹시
#! /bin/bash
for i in `ls`; do
if [ -f $i ]; then
mv $i $i.bak
fi
done
15. 셸 스 크 립 트 를 작성 하여 현재 디 렉 터 리 의 크기 가 100 K 이상 인 파일 을 모두/tmp/디 렉 터 리 로 이동 합 니 다.
for f in `find . -type f -size +100K`; do mv $f /tmp/ ; done
16. 이 컴퓨터 의 HOSTNAME, IP 주소 와 DNS 주 소 를 가 져 오 는 작은 스 크 립 트 를 작성 합 니 다.
표준 답안 판:
#!/bin/bash
hostname=`hostname`
echo "hostname : " $hostname
ip=`/sbin/ifconfig -a | grep 'inet addr' | awk -F ':' '{print $2}' | awk '{print $1}'`
for i in $ip
do
echo "`ifconfig | grep -B1 "$i" | grep -v 'inet addr' | awk '{print $1}'` "$i""
done
DNS=`cat /etc/resolv.conf |grep nameserver|grep -v '#'`
echo $DNS
개인 버 전:
#! /bin/bash
hostname=`echo $HOSTNAME`
IP=`ifconfig eth0 |sed -n '2'p |awk '{print $2}'|awk -F':' '{print $2}'`
dns=`cat /etc/resolv.conf |grep 'nameserver' |awk '{print $2}' |sed -n '1'p`
echo "hostname=$hostname"
echo "IP=$IP"
echo "dns=$dns"
17. 두 개의 작은 스 크 립 트 를 써 서 break 와 contine 이 순환 하 는 역할 을 검증 합 니 다.
셸 스 크 립 트:
#! /bin/bash
echo "===Test 'break'==="
for i in `seq 1 5`; do
if [ $i -eq 3 ]; then
break
else
echo $i
fi
done
echo "===Test 'continue'==="
for i in `seq 1 5`; do
if [ $i -eq 3 ]; then
continue
else
echo $i
fi
done
실행 결과:
===Test 'break'===
1
2
===Test 'continue'===
1
2
4
5
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바이너리 파일cat 또는tail, 터미널 디코딩 시 처리 방법cat으로 바이너리 파일을 보려고 할 때 코드가 엉망이 되어 식은땀이 났다. 웹에서 스크롤된 정보의 처리 방법과alias의 설정을 요약합니다. reset 명령을 사용하여 터미널을 재설정합니다.이렇게 하면 고치지 못하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.