关于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
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/qq_35629971/article/details/122112579
内容来源于网络,如有侵权,请联系作者删除!