嵌入式学习代码总结(六)

#!/bin/bash
test -l $1
echo $?


#功能:判断用户;主目录下是否有file-dir和dir-dir目录
#如果这两个目录存在,询问是否删除这两个目录
#如果用户输入y,则将这两个目录删除,重新创建这两个目录
#如果用户输入n,输出继续
#请用户输入一个路径,将这个路径下的文件拷贝到file-dir
#将这个路径下的文件夹拷贝到dir-dir
#预计拷贝的文件和目录的个数
#来源:朱鸿飞老师
#!/bin/bash
for dir in $HOME/file-dir $HOME/dir-dir
do
	if [ -d $dir ]
	then
		read -p "是否删除:" OP
		case $OP in
			Y|YES|y/yes)
				rm -r $dir
				mkdir $dir
				;;
			N|NO|no|n)
				echo "continue"
				;;
		esac
	else
		mkdir $dir
	fi
done
fileCount=0
dirCount=0
read -p "请输入一个路径:" pathname
flist=`ls $pathname`
# $pathname指代路径
# $list指代路径下的文件
for list in $flist
do
	if [ -f $pathname/$list ]
	then
		cp $pathname/$list $HOME/file-dir
		fileCount=`expr $fileCount + 1`
	elif [ -d $pathname/$list ]
	then
		cp -r $pathname/$list $HOME/dir-dir
		dirCount=`expr $dirCount + 1`
	fi
done
echo "fileCount = $fileCount"
echo "dirCount = $dirCount"

#!/bin/bash
for dir in $HOME/file-dir $HOME/dir-dir
do
	if [ -d $dir ]
	then
		read -p "是否删除?" op
		case $op in
			y|yes)
				rm -r $dir
				mkdir $dir
				;;
			n|no)
				echo "continue"
				;;
		esac
		mkdir $dir
	fi
	filecount=0
	dircount=0
	read -p "请输入一个路径:" pathname
	flist=`ls $pathname`
	for list in $flist
	do
		#filecount=0
		#dircount=0
		if [ -f $pathname/$list ]
		then
			cp $pathname/$list $HOME/file-dir
			filecount=`expr $filecount + 1`
		elif [ -d $pathname/$list ]
		then
			cp -r $pathname/$list $HOME/dir-dir
			dircount=`expr $dircount + 1`
		fi
	done
done
echo "filecount=$filecount"
echo "dircount=$dircount"

#!/bin/bash
for fir in f/home/xuzichen/HQYJ.XA/22101/LinuxC/20221116/fuxi
ile-dir dir-dir
do
	if [ -d $dir ]
	then
		read -p "是否删除?" op
		case $op in
			y|yes)
				rm -r $dir
				mkdir $dir
				;;
			n|no)
				echo "continue"
				;;
		esac
		mkdir $dir
	fi
	read -p "请输入一个路径:" pathname
	flist=`ls $pathname`
	for list in $flist
	do
		filecount=0
		dircount=0
		if [ -f $pathname/$list ]
		then
			cp $pathname/$list file-dir
			filecount=`expr $filecount + 1`
		elif [ -d $pathname/$list ]
		then
			cp -r $pathname/$list dir-dir
			dircount=`expr $dircount + 1`
		fi
	done
done
echo "filecount=$filecount"
echo "dircount=$dircount"

#!/bin/bash
for fir in $HOME/file-dir $HOME/dir-dir
do
	if [ -d $dir ]
	then
		read -p "是否删除?" op
		case $op in
			y|yes)
				rm -r $HOME/$dir
				mkdir $dir
				;;
			n|no)
				echo "continue"
				;;
		esac
		mkdir $dir
	fi
	read -p "请输入一个路径:" pathname
	flist=`ls $pathname`
	for list in $flist
	do
		filecount=0
		dircount=0
		if [ -f $pathname/$list ]
		then
			cp $pathname/$list $HOME/file-dir
			filecount=`expr $filecount + 1`
		elif [ -d $pathname/$list ]
		then
			cp -r $pathname/$list $HOME/dir-dir
			dircount=`expr $dircount + 1`
		fi
	done
done
echo "filecount=$filecount"
echo "dircount=$dircount"

#!/bin/bash
for fir in $HOME/file-dir $HOME/dir-dir
do
	if [ -d $dir ]
	then
		read -p "是否删除?" op
		case $op in
			y|yes)
				rm -r $HOME/$dir
				makedir $dir
				;;
			n|no)
				echo "continue"
				;;
		esac
		mkdir $dir
	fi
	read -p "请输入一个路径:" pathname
	flist=`ls $pathname`
	for list in $flist
	do
		filecount=0
		dircount=0
		if [ -f $pathname/$list ]
		then
			cp $pathname/$list $HOME/file-dir
			filecount=`expr $filecount + 1`
		elif [ -d $pathname/$list ]
		then
			cp -r $pathname/$list $HOME/dir-dir
			dircount=`expr $dircount + 1`
		fi
	done
done
echo "filecount=$filecount"
echo "dircount=$dircount"

#!/bin/bash
for fir in $HOME/file-dir $HOME/dir-dir
do
	if [ -d $dir ]
	then
		read -p "是否删除?" op
		case $op in
			y|yes)
				rm -r $HOME/$dir
				makedir $dir
				;;
			n|no)
				echo "continue"
				;;
		esac
		mkdir $dir
	fi
	read -p "请输入一个路径:" pathname
	flist=`ls $pathname`
	for list in $flist
	do
		filecount=0
		dircount=0
		if [ -f $pathname/$list ]
		then
			cp $pathname/$list $HOME/file-dir
			filecount=`expr $filecount + 1`
		elif [ -d $pathname/$list ]
		then
			cp -r $pathname/$list $HOME/dir-dir
			dircount=`expr $dircount + 1`
		fi
	done
echo "filecount=$filecount"
echo "dircount=$dircount"

#!/bin/bash
if [ ! -d $HOME/backup ]
then
	mkdir $HOME/backup
fi
flist=`ls`
for file in $flist
do
	if [ $# = 1 ]
	then
		if [ $1 == $file ]
		then
			echo "$file found"
			exit
		fi
	else
		cp $file $HOME/backup
		echo "$file copied"
	fi
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do 
		mul=`expr $i \* $j`
		echo -n "$i * $j = $mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=1
while [ $j -le 0 ]
do
	i=1
	while [ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n "$i * $j = $mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do 
		mul=`expr $i \* $j`
		echo -n "$i * $j = $mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=0
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n "$i * $j = $mul"
		i=`expr $i + 1 `
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do 
		mul=`expr $i \* $j`
		echo -n "$i * $j = $mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n " $i * $j = $mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n" $i * $j = $mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done


#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while[ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n" $i * $j=$mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j + 1`
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while [ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n" $i * $j=$mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j +1`
done

#!/bin/bash
j=1
while [ $j -le 9 ]
do
	i=1
	while[ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n"$i * $j=$mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j +1`
done

#!/bin/bash
j=1
while[ $j -le 9 ]
do
	i=1
	while[ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n"$i * $j=$mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j +1`
done

#!/bin/bash
j=1
while[ 1 -le 9 ]
do
	i=1
	while[ $i -le $j ]
	do
		mul=`expr $i \* $j`
		echo -n"$i * $j=$mul"
		i=`expr $i + 1`
	done
	echo ""
	j=`expr $j +1`
done

#!/bin/bash
function add()
{
	add=`expr $1 + $2`
	#echo $add
	echo "$1是子函数中的$1"
	echo "$2是子函数中的$2"
	return $add
}
r=`add 4 5`
echo $r
echo "$1是shell中的$1"
echo "$2是shell中的$2"

#!/bin/bash
function add()
{
	add=`expr $1 + $2`
	echo $add
	echo "$1是子函数中的$1"
	echo "$2是子函数中的$2"
	return $add
}
r=`add 4 5`
echo $r
echo "$1是shell中的$1"
echo "$2是shell中的$2"

#!/bin/bash
function add()
{
	add=`expr $1 + $2`
	echo $add
	echo "$1是子函数中的$1"
	echo "$2是子函数中的$2"
	return add
}
r=`add 4 5`
echo $r
echo "$1是shell中的$1"
echo "$2是shell中的$2"

#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
	sum=`expr $sum + $i`
	i=`expr $i + 1`
done
echo "sum=$sum"

#!/bin/bash
i=1
sum=0
while [ $i -le 10 ]
do
	sum=`expr $sum + $i`
	i=`expr $i + 1`
done
echo "sum=$sum"

#!/bin/bash
read filename
read op
case $op in
	y|yes|Y|YES)
		echo "确定下载"
		sudo apt install $filename
		;;
	n|no|NO|N)
		echo "取消下载"
		;;
esac

#!/bin/bash
for i in {10..1..2}
do
	echo "$i"
done

#!/bin/bash
for i in {10..1}
do
	echo "$i"
done

#!/bin/bash
for I in {1..10}
do
	echo $I
done

#!/bin/bash
for I in 1 12.34 hello
do 
	echo $I
done

#!/bin/bash
case $2 in
	'+')
		result=`expr $1 + $3`
		;;
	'-')
		result=`expr $1 - $3`
		;;
	'*')
		result=`expr $1 \* $3`
		;;
	'/')	
		result=`expr $1 / $3`
		;;
	*)
		echo "输入错误"
		;;
esac
echo "result=$result"

#!/bin/bash
case $2 in
	'+')
		result=`expr $1 + $3`
		;;
	'-')
		result=`expr $1 - $3`
		;;
	'*')
		result=`expr $1 \* $3`
		;;
	'/')	
		result=`expr $1 / $3`
		;;
	*)
		echo "输入错误"
		;;
esac
echo "result=$result"

#!/bin/bash
case $2 in
	'+')
		result=`expr $1 + $3`
		;;
	'-')
		result=`expr $1 - $3`
		;;
	'*')
		result=`expr $1 \* $3`
		;;
	'/')	
		result=`expr $1 \* $3`
		;;
	#*)
		#echo "输入错误"
		#;;
esac
echo "result=$result"

#!/bin/bash
case $2 in
	'+')
		result=`expr $1 + $3`
		;;
	'-')
		result=`expr $1 - $3`
		;;
	'*')
		result=`expr $1 \* $3`
		;;
	'/')	
		result=`expr $1 \* $3`
		;;
	*)
		echo "输入错误"
		;;
esac
echo "result=$result"

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	echo "$1是字符设备文件"
else
	echo "$1是其它文件"
fi

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
#elif test -c $1
#then
#	echo "$1是字符设备文件"
#else
#	echo "$1是其它文件"

#!/bin/bash
if [ $# -ne 1 ]
then
	echo "输入错误"
	exit
fi
if [ -f $1 ] && [ -r $1 ]
then
	echo "$1是一个可读普通文件"
elif [ -c $1 ]
then
	"$1是字符设备文件"
else
	"$1是其它文件"

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	echo "$1是字符设备文件"
else
	echo "$1是其它文件"

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if [ -f $1 ] && [ -r $1 ]
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	"$1是字符设备文件"
else
	"$1是其它文件"

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	"$1是字符设备文件"
#else
	#"$1是其它文件"


#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	echo "$1是字符设备文件"
else
	echo "$1是其它文件"

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	echo "$1是字符设备文件"
else
	echo "$1是其它文件"

#!/bin/bash
if test $# -ne 1
then
	echo "输入错误"
	exit
fi
if test -f $1 && test -r $1
then
	echo "$1是一个可读普通文件"
elif test -c $1
then
	"$1是字符设备文件"
else
	"$1是其它文件"

#!/bin/bash
if test $# -ne 1
then
	exit
fi
if test -f $1
then
	echo "yes"
else
	echo "no"
fi

#!/bin/bash
test $1 -ot $2
echo $?

#!/bin/bash
test $1 -nt $2
echo $?

#!/bin/bash
test -r $1
echo $?
test -w $1
echo $?
test -x $1
echo $?
test -s $1
echo $?

#!/bin/bash
test -r $1
echo $?
test -w $1
echo $?
test -x $1
echo $?
test -s $1
echo $ddd?

#!/bin/bash
test -L $1
echo $?

#!/bin/bash
test -L $1
echo $?

#!/bin/bash
test -l $1
echo $?

#!/bin/bash
test -f $1
echo $?

#!/bin/bash
test -d $1
echo $?

#!/bin/bash
read x
read y
test $x -le $y
echo $?

#!/bin/bash
read x y
test $x -lt $y
echo $?

#!/bin/bash
read x y
test $x -ge $y
echo $?

#!/bin/bash
read x
read y
test $x -gt $y
echo $?

#!/bin/bash
read x y
test $x -ne $y
echo $?

#!/bin/bash
read x 
read y
test $x -eq $y
echo $?


  • 选择题(2*20)

1.在 Shell 环境中的预定义变量中,以下( )用于表示执行上一条命令后的返回状态。  

A.$!       B.$?      C.$$        D.$0  

2.下列哪些命令可以测试网络通不通?(  ) 

A.ping       B.netstat      C.trace      D.route

3.下面不是对Linux操作系统特点描述的是(   )

A.良好的可移植性           B.稳定性低

C.多用户                  D.多任务

4.目前流行的两种软件包管理机制,Debian使用(   )软件包

A.zip       B.rpm       C.tar       D.deb

5.假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下(    )通配符可以挑选出其中的编号为1、3、5的文件。

A. file_*.txt     B. flie_?.txt      C. file_[135].txt     D. file_[^135].txt

6.下面代码中p和"hello,world"存储在内存哪个区域?(  )

int main()

{

     char *p = "hello,world";

     return 0;

}

  1. 栈,堆   B.栈,栈     C.堆,只读存储区    D.栈,只读存储区

7.已知宏定义

#define N 3

#define Y(n)((N+1)*n)

执行语句z=2*(N+Y(5+1));变量z的值是(  )  

A.42 B.48 C.54 D.出错

8.下述程序第二次的输出结果是(  )

int main(){

    extern int a;

    int b=0;

    static int c;

    a+=3;

    other();

    b+=3;

other();

}

   int a=5;

void other(void){

    int b=3;

    static int c=2;

a+=5;b+=5;c+=5;  

    printf(“%d,%d,%d”,a,b,c);

c=b;

}

A.13,0,13            B.18,8,13

C.13,8,13            D.18,8,0

9.以下程序的运行结果为(    )

void sub(int x, int y, int *z)

{

*z = y – x ;

 }

int main(void)

{

int a,b,c ;

sub(10, 5, &a) ;  

sub(7, a, &b) ;  

sub(a, b, &c) ;     

printf( “%4d,%4d, %4d\n”,a,b,c);

}

  1. 5,   2,   3     B. -5, -12,  -7     C. -5, -12, -17     D.  5,  -2,  -7

10.下述程序的输出结果是(   )。

int main(void)

{

int Y=100;

while(Y--);

printf(“Y=%d”,Y);

}

  1. Y=0     B. Y=1     C. Y=-1     D. Y=随机数

11.在C语言中,数组作为函数的形参,函数调用时,若用数组名作为函数的实参,则实际上’传递给形参的是( ) 。

A.数组首地址    B.数组的第一个元素值

C.数组中全部元素的值    D.数组元素的个数

12.int *p[4] 与选择项中的说明 (  ) 等价

A. int p[4]      B. int *p     C. int *(p[4])     D. int (*p)[4]

13.在给定文件中查找与设定条件相符字符串的命令为(  )

A. grep       B. gzip     C. find      D. sort

14.在一个C源程序文件中,若要定义一个只允许在本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是(  )

A. extern      B. static     C. auto     D. register

15.下面这段C程序的输出是 (   )

void foo(int b[][3])

Void foo(int (*p)[3])

{

++b;

b[1][1] = 9;

}

 void main()

{

int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

foo(a);

printf(""%d"",a[2][1]);

}

A.8         B.9         C.7            D.以上均不对

16. 以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:(  )。

#include <stdio.h>

int main(void)

{

char s[80] ;

int i, j ;

gets(s) ;

for ( i = j = 0 ; s [i] != ‘\0’ ; i++ )

if ( s [i] != ‘c’ )

(  ? );

s [ j ] = ‘\0’ ;

puts ( s ) ;

return 0 ;

}

  1. s[j++] = s[i]      B. s[++j] = s[i]       C. s[j] = s[i]; j++    D. s[j] = s[i]

  1. 以下程序的输入结果是(   )

#include <stdio.h>

typedef union

{   long i;int k[5];char c;   } DATE;

struct date

{    int cat;DATE cow;double dog;   } too;

DATE max;

void  main()

{

printf("%d\n",sizeof(struct date)+sizeof(max));

}

A.32      B.48      C.52     D.68

  1. 由多个源文件组成的C程序,经过编辑、预处理、编译、链接等阶段会生成最终的可执行程序。下面哪个阶段可以发现被调用的函数未定义?( )  

A. 预处理      B. 编译     C. 链接      D. 执行

  1. 若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令( )

A. tar -cvf myfile.txt   myfile.txt.tar.gz

B. tar -zcvf myfile.txt   myfile.txt.tar.gz

C. tar -zcvf myfile.txt.tar.gz   myfile.txt 

D. tar -cvf myfile.txt.tar.gz   myfile.txt

  1. 以下关于头文件,说法正确的是()  
  1. #include<filename.h>,编译器寻找头文件时,会从当前编译的源文件所在的目录去找
  2. #include“filename.h”,编译器寻找头文件时,会从指定的目录去找
  3. 多个源文件同时用到的全局整数变量,它的声明和定义都放在头文件中,是好的编程习惯
  4. 在大型项目开发中,把所有自定义的数据类型、全局变量、函数声明都放在一个头文件中,各个源文件都只需要包含这个头文件即可,省去了要写很多#include语句的麻烦,是好的编程习惯

作者:徐子宸

来源:原创

日期:2022年11月16日

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习嵌入式Linux内核是一个需要循序渐进的过程。首先需要了解Linux内核的基础知识,可以参考《深入理解Linux内核》这本书。这本书非常经典,通过对内核源码的学习,可以帮助你更好地理解Linux内核的工作原理和机制。 在学习过程中,可以按照以下学习路线进行: 1. 学习Linux基础知识:了解Linux操作系统的基本原理和概念,包括进程管理、内存管理、文件系统等。 2. 学习C语言编程:作为Linux内核的开发语言,掌握C语言编程是必不可少的。可以通过学习C语言的语法和特性来提高自己的编程能力。 3. 研究Linux内核源码:深入理解Linux内核需要对其源码进行研究。可以选择一些经典的书籍,如《深入理解Linux内核》,并结合实际的内核代码进行学习。 4. 参与开源项目:参与开源项目是提高自己对Linux内核理解的一个很好的方式。可以选择一些感兴趣的项目,并贡献自己的代码或者参与讨论,与其他开发者一起学习和成长。 总结来说,嵌入式Linux内核的学习需要从基础知识到深入研究内核源码,并通过实践和参与开源项目来提高自己的技能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [关于如何快速学好,学懂Linux内核。内含学习路线](https://blog.csdn.net/m0_74282605/article/details/127999926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [嵌入式Linux入门指南(一)——学习路线篇](https://blog.csdn.net/weixin_51627076/article/details/122588888)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值