Linux编程基础期末冲刺——第4章shell

x33g5p2x  于2021-12-23 转载在 Shell  
字(2.8k)|赞(0)|评价(0)|浏览(831)

关于shell的笔记:
专栏:

Linux系统中的输入输出分为三类,分别为:______、标准输出和______。
标准输入 标准错误

当执行gcc –c hello.c 2 > file命令时,系统会将执行命令时的______输出到文件file中。

错误信息
Liux系统为其中的输入输出文件设置了默认编号:标准输入文件的编号是0,标准输出文件的编号是1,标准错误文件的编号是2。因此本题目中的“2>file”是将执行命令时的错误信息重定向到文件file中。

标准错误输出文件编号为2.
错误重定向符号与输出重定向符号相同,即都为“>”和“>>”,
使用“>”将以覆盖的方式将错误信息写到file文件;
使用“>>将以追加的方式将错误信息写到file文件。因此正确选项为D。

执行shell脚本的方法有两种,假设现有一脚本文件test.sh,则执行该脚本的方式分别为: ----和—。

chmod+x test.sh ./test.sh
bash test.sh
执行该脚本的方法有两种:一种是将脚本本身作为一个可执行文件,若想执行该脚本程序,需要确保该文件可执行,但创建的文件一般默认没有可执行权限,因此需要先使用chmod命令,来修改文件的权限:另一种方法是将该脚本文件作为一个参数,通过Shell解释器对其进行解析。

Shell中变量没有明确的类型,变量值都以字符串的形式存储,但Shell中也可能进行一些算术运算。Shell中的运算一般通过两个命令:______和______实现。

let
expr

条件判断是条件语句的核心,Shell中通常使用____命令或______命令对条件进行判断,这两个命令判断的条件可以是命令或脚本。

test
[

Shell脚本中常用的条件语句有三种,分别为:______语句、______语句和______语句。

if条件
select
case

cat < file命令的功能是将cat命令打印的结果重定向到文件file中。 ( )

<是输入
<为输入重定向,因此cat<file命令的功能为将file文件的内容作为cat命令的输入,即打印文件file中的内容,等同于cat file。

Shell的原意为“壳”,它包裹在内核之外,处于硬件与内核之间其主要功能为接收用户输入的命令,找到命令所在位置,并加以执行。 ( )

shc位于用户与内核之间,而非硬件与内核之问

Shell最重要的功能是命令解释器,Linux系统中的所有可执行文件都可以作为Shell命令来执行。 ( √)

使用“&”连接符连接的命令,其前后命令的执行遵循逻辑与关系,只有该连接符之前的命令执行成功时,后面的命令才会被执行。 ( )
&&才是逻辑连接符

在Shell编程中,使用echo命令可打印字符串。若当前脚本中定义了变量var=”hello itheima”,则语句echo ‘$var’打印的结果为hello itheima。 ( )

在Shell脚本中,若由双引号引起的字符串中有变量的引用,则会输出变量中存储的值:
由单引号引起来的字符串中有变量的引用,则会原样输出。
因此该习题中echo语句打印的结果应为$var

单引号:所见即所得
双引号:所见非所得,它会先把变量解析之后,再输出

/
所以如果是双引号,是var变量的值,即”hello itheima”

连接命令,并使命令顺序执行的连接符为“;”。
此外,“|”是管道连接符,该命令的功能是将一个命令的输出作为另外一个命令的输入
“&&”是逻辑与连接符,连接符两边的命令执行有逻辑与关系,只有前一个命令执行成功时,后面的命令才会执行;
“I|”是逻辑或连接符,只有前一个命令执行失败时,后面的命令才会执行。

、、、

简答:
分析以下脚本代码:
#!/bin/bash
sum=0
for(( i=1; i <= 10; i++ ))
do
sum=expr $sum + $i
echo $sum
done
echo “sum1~10= $sum”
写出此脚本的执行结果。

计算1~10相加的和
1
3
6
15
21
28
36
45
55
sum1~10=55

写出shell脚本中while循环与until循环的基本格式,并简述这两种循环结构的区别。

while[表达式]

do

-

done


until[表达式]

do

-

done

while 与 until的区别在于:while会先进行表达式判断,若表达式满足,才执行循环体,
而until则会先执行循环体,在进行表达式判断,直到表达式不成立时,才结束循环

、、

编程

编写shell脚本实现如下菜单界面:

Menu

1) exit

2) edit file

3) date

4) calc

#?
#!/bin/bash


echo "Menu"

select var in "exit" "exit file" "date" "calc"

do 

 echo "Your choose is $var"

 break

done

exit 0

编写shell脚本,实现批量添加用户功能,要求如下:
①用户名格式统一,为相同字符串加数字编号,如qwe1~qwe9;
②用户密码与用户名相同。

#!/bin/bash

#addusers


echo "------add 9 users------"

echo "please input a string:"


read user


for i in {1..9}; do 

   username=$user$i

   if useradd $username> /dev/unll; then

   echo "$username"|passwd --stdin $username

   if [ $? -eq 0 ]; then

    echo "add $username successful"

   else 

    echo "$username added,change password failure"

   fi

else

 echo "add $username failure"

fi


done

exit 0

编写shell脚本,实现批量删除用户功能,其中用户的用户名格式统一(如qwe1~qwe9)。

#!/bin/bash

#delusers



echo "-----del 9 users------"

echo "please input a string:"


read user


for i in {1..9};do 

 username=$user$i

 userdel -r $username

 if [ $? -eq 0 ]; then

  echo "del $username successful"

 else

  echo "del $username failure"

 fi

done

exit 0

相关文章