当前位置:首页 > linux复习题
while [ $tmp -le $1 ] do
fact=$((fact*tmp));tmp=$((++tmp)); done
echo \2. 阅读Makefile文件:
all : libmys.so
SRC = f1.c f2.c f3.c TGT = $(SRC:.c=.o) %.o : %.c cc -c $?
libmys.so : $(TGT) cc -shared -o $@ $(TGT) clean: rm -f $(TGT)
回答以下问题:
(1) 此Makefile文件的主要功能是什么?
(2) 此Makefile文件包含多少个规则?它们分别是什么?
(3) 使用此Makefile文件可以生成目标文件f2.o吗?为什么? 参考答案:
(1)生成共享库文件libmys.so;
(2) 4个。分别是:all,%.o,libmys.so和clean。
(3) 可以。因为规则%.o : %.c已经定义了*.o与*.c的关系和生成方法。
最大公约数和最小公倍数 #!/bin/bash
read -p \
read -p \a=$c b=$d
while [ `expr $a % $b` -ne 0 ] do
r=`expr $a % $b` a=$b b=$r done
echo \sui=`expr $c / $b`
sui=`expr $sui \\* $d / $b` sui=`expr $sui \\* $b` echo \
(7)加减乘除运算,其中
l 两个操作数和一个运算符由位置参数给出 l 在屏幕上分别显示操作数、运算符和运算结果 #!/bin/bash #test 7
read -p \read -p \
read -p \
v=`echo \echo \
(10)冒泡法对10个数按升序排序 #!/bin/bash
#test 10 冒泡法输出 i=0
for m in \do
a[i]=$m let i=i+1 done
(12)求n的阶乘,n=100 方法1: #!/bin/bash a=1
for(( i=1; i <= 100; i++ )) do
a=$[ $i * $a ] done
echo \!=$a\方法2(递归)(可以求任意数的阶乘): function func {
if [ $1 -eq 1 ];then echo \ else
local i=$[ $1 - 1 ] local j=`func $i`
a=`echo \ echo $a fi }
read -p \n=`func $m` echo \
1、编写一个shell脚本,完成功能: ? 1)显示文字“Waiting for a while….‖
? 2)长格式显示当前目录下面的文件和目录,并输出重定向到/home/file.txt文件
? 3)定义一个变量,名为s,初始值“Hello‖ ? 4)使该变量输出重定向到/home/string.txt文件
2、编写一个shell脚本,它把第二个位置参数及其以后的各个参数指定的文件复制到第一个位置参数指定的目录中。
3、编写一个shell脚本,利用for循环将当前目录下的.c文件移动到指定的目录,并按文件大小显示出移动后指定的目录的内容。
4、利用数组形式存放10个城市的名字,然后利用for循环把它们打印出来。
1、 #!/bin/bash
echo ―Please wating….‖ ls –l > home/tem1 a=―Hello‖
echo $a > /home/tem2 2、 #!/bin/bash dir=$1 shift
while [ $1 ] do file=$1 cp $1 $dir shift done ls $dir
3、 #!/bin/bash
for file in *.c do cp ${file} ${1} done ls ${1} –lS 4、 #!/bin/bash
name=(唐山 北京 天津 保定 秦皇岛 廊坊 石家庄 邯郸 承德 邢台) for i in ${name[*]} do echo $i done
(基训十一) 在根目录下有四个文件m1.txt,m2.txt,m3.txt,m4.txt,用Shell编程,实现自动创建m1,m2,m3,m4四个目录,并将m1.txt,m2.txt,m3.txt,m4.txt四个文件分别拷贝到各自相应的目录下。 #!/bin/bash cd /
touch m1.txt m2.txt m3.txt m4.txt I=1 while [ $I -le 4 ] do
mkdir m$I cp m$I.txt m$I I=$((I+1)) done
3、(基训十二) 编写一个名为myfirstshell.sh的脚本,它包括以下内容。a) 包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的。
b) 问候用户。 c) 显示日期和时间。 d) 显示这个月的日历。 e) 显示您的机器名。
f) 显示当前这个操作系统的名称和版本。 g) 显示父目录中的所有文件的列表。 h) 显示root正在运行的所有进程。 i) 显示变量TERM、PATH和HOME的值。 j) 显示磁盘使用情况。 k) 用id命令打印出您的组ID。 m) 跟用户说“Good bye” #!/bin/bash
# 09嵌入 5号 贾德进 myfirstshell.sh shell的简单编程 user=`whoami` case $user in root) echo \echo \
echo \
echo \日期和时间: `date`\本月的日历: `cal`\echo \本机的机器名:`uname -n`\
echo \当前这个操作系统的名称和版本:`uname -s;uname -r`\父目录中的所有文件的列表:`ls ../`\正在运行的所有进程:` ps -u root`\变数TERM的值:$TERM\变数PATH的值:$PATH\变数HOME的值:$HOME\echo \磁盘的使用情况:`df`\
echo \用id命令打印出你的组ID:`id -g`\
4、(基训十三) 设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限为 rwxr-xr— #!/bin/bash cd /userdata I=1 while [ $I -le 50 ] do
mkdir -p userdata/user$I chmod o-x user$I I=$((I+1)) done
5、(基训十四) 编写shell程序,实现自动删除50个用户账号的功能。账号名为stud1至stud50。
#!/bin/bash cd /userdata I=1 while [ $I -le 50 ] do
mkdir -p userdata/user$I chmod o-x user$I I=$((I+1)) done
6、(基训十四) 设计一个shell程序,备份并压缩/etc目录的所有内容,存放在/root/bak目录里,且文件名为如下形式yymmdd_etc,yy为年,mm为月,dd为日。 #!/bin/bash
DIRNAME=`ls |root|grep bak ` if [-z $DIRNAME ]; then mkdir /root/bak cd /root/bak fi
YY=`date + %y` MM=`date + %m`
DD=`date + %d`tar czvf ${YY}${MM}${DD}_etc.gz /etc echo \
共分享92篇相关文档