嵌入式学习-C高级-Day3、4

嵌入式学习-C高级-Day3、4

一、思维导图

在这里插入图片描述

二、作业

1.练习1: 在终端输入一个用户名

1.1定义有参有返函数,返回用户在/etc/passwd文件中的行号
参数:用户名
返回: 行号
1.2定义有参有返函数,返回用户在.etc.passwd文件中的解析器
参数:用户名
返回:解析器
1.3定义有参有返函数,返回用户的uid和gid
参数:用户名
返回:uid gid

#!/bin/bash

#!/bin/bash

read -p "please enter username: " username

function hanghao()
{
	#$1函数的第一个参数
	local hanghao=`grep -n "$1" /etc/passwd | cut -d ":" -f 1`
	echo $hanghao

}
function jxq()
{
	local jxq=`grep "$1" /etc/passwd | cut -d "/" -f 5 `
	echo $jxq

}

function id()  
{
	local uid=`grep  "$1" /etc/passwd | cut -d ":" -f 3`
	local gid=`grep  "$1" /etc/passwd | cut -d ":" -f 4`
	echo $uid $gid
}

	hanghao=`hanghao $username`
	echo hanghao=$hanghao
	jiexiqi=`jxq $username`
	echo jxq=$jiexiqi

	echo id=`id $username` 

	
 

 

运行结果

在这里插入图片描述

2.定义数组存储软件名(oneko bastet frozen-bubble)使用select.in循环数组,实现页面的交互。使用case in 判断软件是否存在(执行),正常运行则不下载,运行失败则下载并运行

ps查看进程

#!/bin/bash

arr=(oneko bastet frozen-bubble)

select app in ${arr[*]}
do
	#echo varname=$varname
	case $app in
		oneko)
			oneko 
			flag=$?
				if [ $flag -eq 0 ]
				then
					echo succeed
				else
					echo download oneko
					sudo apt-get install oneko
					echo run oneko
					oneko 
				fi
			;;
		bastet)
			bastet
			flag=$?
				if [ $flag -eq 0 ]
				then
					echo succeed
				else
					echo download bastet
					sudo apt-get install bastet
					echo run bastet
					bastet 				
				fi
			;;
		frozen-bubble)
			frozen-bubble
			flag=$?
				if [ $flag -eq 0 ]
				then
					echo succeed
				else
					echo download
					sudo apt-get install frozen-bubble
					echo run
					frozen-bubble
				fi

			;;
	esac
done

3.输入数组元素,计算数组的最大值

#!/bin/bash

read -p "please enter arr: " -a arr
max=${arr[0]}
len=${#arr[*]}
for((i=0;i<len;i++))
do
	if [ $max -lt ${arr[i]} ]
	then
		max=${arr[i]}
	fi
done
echo max=$max

运行结果

在这里插入图片描述

4.打印图形

#!/bin/bash
read -p "please enter n: " n
for((i=1;i<=n;i++))
do
	for((j=1;j<=i;j++))
	do
		echo -n " "
	done
	for((k=1;k<=n-i+1;k++))
	do
		echo -n "*"
	done
	echo
done

运行结果
在这里插入图片描述

5.练习5:输入一个文件名

判断是否在当前目录下存在
如果是一个目录,则直接输出是目录
如果是一个链接文件则输出文件的详细信息
如果存在则判断是否是一个普通文件,如果是普通文件则判断是否具备
可读可写可执行权限,如果具备权限,写入hello,不具备权限,则添加读写执行权限,写入hello

#!/bin/bash

read -p "please enter filename: " name

if [ `ls $name` ] 
then
	echo exist
else
	echo noexist
fi


	if [ -d $name ]
	then
		echo is dir
	elif [ -L $name ]
	then
		echo `ls $name -lh`
	elif [ -f $name ]
	then
		if [ -r $name -a -w $name -a -x $name ]
		then
			echo ok
			echo hello >> $name 
		else
			echo no
			chmod 777 $name
			echo hello >> $name
		fi
	fi

运行结果

在这里插入图片描述

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值