9 월 13 일 수업 숙제 (연습)
8631 단어 순서지식 점교과 과정잠깐 만, 잠깐 만.
1. 셸 프로그램의 운행 원 리 를 설명 합 니 다 (필요 한 도형 설명 을 첨부 할 수 있 습 니 다).
2. 셸 프로 그래 밍 에 관련 된 모든 지식 점 (예 를 들 어 변수, 문법, 명령 상태 등) 을 정리 하고 그림 을 가 져 가 야 합 니 다.
3. 과정 에서 말 한 모든 순환 문, 조건 판단 의 사용 방법 과 관련 된 예 를 정리한다.(if (jpg|png is not exist);echo ”You say a XX“)
4. 텍스트 처리 도구 sed 및 awk 의 용법 을 정리 합 니 다. (예시 가 있어 야 합 니 다)
5. 스 크 립 트 쓰기: 경로 가 존재 하지 않 으 면 디 렉 터 리 로 만 듭 니 다. 그렇지 않 으 면 존재 하 는 것 을 표시 하고 내용 형식 을 표시 합 니 다. (의심 하지 마 세 요. 이렇게 간단 합 니 다)
#!/bin/bash
#判断某路径是否存在,如果存在,显示其内容类型,否则创建与之同名的目录
#给定路径的方法:脚本参数
if [ $# -lt 1 ];then
echo "本脚本是用来判断某路径是否存在,请在脚本后输入至少一个路径"
exit 1
fi
for i in $*;do
if [ -e $i ];then
echo "$i已经存在"
file $i
else
mkdir -p $i
echo "已成功创建目录$i"
echo -e "$(dirname $i)目录下的所有文件和子目录列表为:
$(ls `dirname $i`)"
fi
done
6. 스 크 립 트 를 작성 하여 다음 과 같은 기능 을 완성 합 니 다.
주어진 두 수치 중 어느 것 이 크 고 어느 것 이 작은 지 판단 한다.
주어진 수치 방법: 스 크 립 트 파라미터, 명령 상호작용; (read 를 사용 하면 여전히 간단 합 니 다)
주어진 수치 방법: 스 크 립 트 매개 변수
#!/bin/bash
#判断给定的两个数值大小
#给定数值的方法:脚本参数
[ $# -ne 2 ] && echo "本脚本用来判断给定的两个数值大小,请在脚本后输入两个整数" && exit 0
num1=$(echo $1 | grep '^[0-9]\+$')
num2=$(echo $2 | grep '^[0-9]\+$')
[ -z $num1 ] && [ -z $num2 ] && echo "$1,$2不是整数" && exit 0
[ -z $num1 ] && echo "$1不是整数" && exit 0
[ -z $num2 ] && echo "$2不是整数" && exit 0
[ $1 -eq $2 ] && echo "输入的两个数相同" && exit 0
[ $1 -gt $2 ] && echo "$1大于$2" && exit 0
[ $1 -lt $2 ] && echo "$1小于$2" && exit 0
주어진 수치 방법: 명령 상호작용
#!bin/bash
#判断给定的两个数值的大小
#给定数值的方法:命令交互
echo "本脚本用来判断给定的两个数值大小"
read -p "请在10秒内输入两个整数: " -t 10 i j
[ -z $i ] && [ -z $j ] && echo "请重新输入两个整数" && exit 0
[ -z $j ] && echo "第二个数为空,请输入两个整数" && exit 0
num1=$(echo $i | grep '^[0-9]\+$')
num2=$(echo $j | grep '^[0-9]\+$')
[ -z $num1 ] && [ -z $num2 ] && echo "$i,$j不是整数" && exit 0
[ -z $num1 ] && echo "$i不是整数" && exit 0
[ -z $num2 ] && echo "$j不是整数" && exit 0
[ $i -eq $j ] && echo "输入的两个数相同" && exit 0
[ $i -gt $j ] && echo "$i大于$j" && exit 0
[ $i -lt $j ] && echo "$i小于$j" && exit 0
7. 100 이내 의 모든 홀수 의 합 을 구 합 니 다 (적어도 3 가지 방법 을 사용 합 니 다. 예, 이것 은 우리 의 숙제 입 니 다 ^ ^)
#!bin/bash
#求100以内所有奇数之和
echo "one表示使用第一种方法求得100以内所有奇数之和"
echo "two表示使用第二种方法求得100以内所有奇数之和"
echo "three表示使用第三种方法求得100以内所有奇数之和"
read -p "请在10秒内输入one|two|three中的任意一个单词: " -t 10 val
[ -z $val ] && echo "请输入one|two|three中任意一个单词" && exit 0
declare -i sum=0
declare -i j=1
case $val in
one)
for i in $(seq 1 2 100);do
sum=$[$sum+$i]
done
echo "用for循环步进为2的方法求出100以内所有奇数之和为:$sum"
exit 0
;;
two)
for ((i=1;i<=100;i++)); do
[ $[$i%2] -eq 1 ] && sum=$[$sum+$i]
done
echo "用for循环取2的模为1的方法求出100以内所有奇数之和为:$sum"
exit 0
;;
three)
while [ $j -le 100 ];do
sum=$[$sum+$j]
let j+=2
done
echo "用while循环步进为2的方法求出100以内所有奇数之和为:$sum"
exit 0
;;
*)
echo "输入错误,请选择输入one|two|three中任意一个选项"
exit 0
esac
8. 스 크 립 트 를 작성 하여 다음 과 같은 기능 을 수행 합 니 다.
(1) 스 크 립 트 에 두 텍스트 파일 경 로 를 전달 합 니 다.
(2) 두 파일 중 공백 줄 수가 많은 파일 과 공백 줄 의 개 수 를 표시 합 니 다.
(3) 두 파일 중 총 줄 수가 많은 파일 과 총 줄 수 를 표시 합 니 다.
#!bin/bash
#判断文本文件行数的方法
echo "本脚本用来判断给定的两个文本文件行数"
read -p "请在20秒内输入两个文本文件路径:" -t 20 file1 file2
[ -z $file1 ] && [ -z $file2 ] && echo "请输入两个文本文件路径" && exit 0
[ -z $file2 ] && echo "第二个文件路径为空,请输入两个文本文件路径" && exit 0
[ ! -f $file1 ] && [ ! -f $file2 ] && echo "输入的两个文件路径不存在或者不是文本文件,请重新输入" && exit 0
[ ! -f $file1 ] && echo "输入的第一个文件路径不存在或者不是文本文件,请重新输入" && exit 0
[ ! -f $file2 ] && echo "输入的第二个文件路径不存在或者不是文本文件,请重新输入" && exit 0
i=$(grep '^$' $file1 | wc -l)
j=$(grep '^$' $file2 | wc -l)
[ $i -eq $j ] && echo -e "$file1文件和$file2文件的空白行数相同
总共有空白行:$i行"
[ $i -gt $j ] && echo -e "空白行数较多的文件是$file1
有空白行:$i行"
[ $i -lt $j ] && echo -e "空白行数较多的文件是$file2
有空白行:$j行"
k=$(wc -l $file1 | cut -d' ' -f1)
l=$(wc -l $file2 | cut -d' ' -f1)
[ $k -eq $l ] && echo -e "$file1文件和$file2文件总的行数相同
总共有:$k行"
[ $k -gt $l ] && echo -e "行数较多的文件是$file1
总共有:$k行"
[ $k -lt $l ] && echo -e "行数较多的文件是$file2
总共有:$l行"
9. 대본 쓰기
(1) 사용자 에 게 문자열 을 입력 하 라 고 알려 줍 니 다.
(2) 판단:
quit 를 입력 하면 스 크 립 트 를 종료 합 니 다.
그렇지 않 으 면 입력 한 문자열 의 내용 을 표시 합 니 다.
#!/bin/bash
#判断用户输入一个字符串
read -p "请在15秒内输入一个字符串:" -t 15 str
[ -z $str ] && echo "请输入一个字符串" && exit 0
[[ $str == 'quit' ]] && exit 0 || echo "输入的字符串为:$str"
10. 스 크 립 트 를 작성 하고 2 ^ n 표를 인쇄 합 니 다. n 은 사용자 가 입력 한 값 과 같 습 니 다. (죄송합니다. 장 난 스 럽 습 니 다)
#!/bin/bash
#打印2^n表;n等于一个用户输入的值
k=1
read -p "请在5秒内输入一个整数:" -t 5 var
[ -z $var ] && echo "请输入一个整数" && exit 0
num=$(echo $var | grep "^[0-9]\+$")
[ -z $num ] && echo "输入错误,请输入一个整数" && exit 0
for ((i=0;i<=$var;i++));do
echo "2^${i}=$k"
k=$[${k}*2]
done
11. 스 크 립 트 를 하나 쓰 고 이 몇 가지 함 수 를 씁 니 다.
함수 1. 주어진 두 수치의 합 을 실현 합 니 다.
함수 2. 주어진 두 수치의 최대 공약수 추출 하기;
함수 3. 주어진 두 수치의 최소 공배수 추출 하기;
함수 에 대한 선택, 두 수치의 크기 는 상호작용 입력 을 통 해 제 공 됩 니 다.
#!/bin /bash
#函数1实现给定的两个数值的之和;
#函数2、取给定两个数值的最大公约数;
#函数3、取给定两个数值的最小公倍数
#;关于函数的选定、两个数值的大小都将通过交互式输入来提供
read -p "请在7秒内输入两个整数:" -t 7 i j
[ -z $i ] && [ -z $j ] && echo "请重新输入两个整数" && exit 0
[ -z "$j" ] && echo "第二个数为空,请输入两个整数" && exit 0
num1=$(echo $i | grep '^[0-9]\+$')
num2=$(echo $j | grep '^[0-9]\+$')
[ -z $num1 ] && [ -z $num2 ] && echo "输入错误,$i,$j不是整数" && exit 0
[ -z $num1 ] && echo "输入错误,$i不是整数" && exit 0
[ -z $num2 ] && echo "输入错误,$j不是整数" && exit 0
sum() {
Sum=$[${i}+${j}]
echo "$i与$j的和为:$Sum"
}
max() {
[ $i -eq 0 ] && [ $j -ne 0 ] && echo "$i与$j的最大公约数为:$j" && exit 0
[ $i -ne 0 ] && [ $j -eq 0 ] && echo "$i与$j的最大公约数为:$i" && exit 0
if [ $i -eq $j ];then
echo "$i与$j的最大公约数为:$i"
exit 0
elif [ $i -gt $j ];then
for num1 in $(seq $j -1 1);do
[ $[$i%$num1] -eq 0 ] && [ $[$j%$num1] -eq 0 ] && echo "$i与$j的最大公约数为:$num1" && exit 0
done
else
for num2 in $(seq $i -1 1);do
[ $[$i%$num2] -eq 0 ] && [ $[$j%$num2] -eq 0 ] && echo "$i与$j的最大公约数为:$num2" && exit 0
done
fi
}
min() {
[ $i -eq 0 ] && [ $j -ne 0 ] && echo "$i与$j的最小公倍数为0 " && exit 0
[ $i -ne 0 ] && [ $j -eq 0 ] && echo "$i与$j的最小公倍数为0" && exit 0
if [ $i -eq $j ];then
echo "$i与$j的最小公倍数为:$i"
exit 0
elif [ $i -gt $j ];then
for num1 in $(seq $i 1 $[$i*$j]);do
[ $[$num1%$i] -eq 0 ] && [ $[$num1%$j] -eq 0 ] && echo "$i与$j的最小公倍数为;$num1" && exit 0
done
else
for num2 in $(seq $j 1 $[$i*$j]);do
[ $[$num2%$i] -eq 0 ] && [ $[$num2%$j] -eq 0 ] && echo "$i与$j的最小公倍数为;$num2" && exit 0
done
fi
}
echo
echo " sum表示求输入的两个数之和"
echo " max表示求输入的两个数的最大公约数"
echo " min表示求输入的两个数的最小公倍数"
read -p "请在10秒内输入sum|max|min中任意一个单词:" -t 10 str
[ -z $str ] && echo "请输入sum|max|min中任意一个单词" && exit 0
case $str in
sum)
sum
;;
max)
max
;;
min)
min
;;
*)
echo "输入错误,请输入sum|max|min中任意一个单词"
exit 0
esac
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Sql의 실행 순서가 어떻게 되는지 알려드릴게요.select*단지 당신이 Sql 대문에 들어서는 첫걸음일 뿐, 실제 업무에서 틀림없이 이렇게 간단하지 않을 것이다.우리 예를 하나 봅시다. 위의 요구 사항을 수행하려면 다음과 같이 Sql을 사용할 수 있습니다. 위의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.