2023-2-16-shell脚本习题

  1. 打印九九乘法表,printf “%d * %d = %d\t” i j $((i*j)
#!/bin/bash
for i in `seq 1 1 9`
do
	for j in `seq 1 1 9`
	do
		printf "%d*%d=%d\t" $j $i $((i*j))
		if [ $j -ge $i ]
		then
			break
		fi
	done
	echo
done

在这里插入图片描述

  1. 输入文件名,判断是否为普通文件,如果为普通文件,判断是否为脚本文件,如果为脚本文件,判断是否有可执行权限,如果没有可执行权限,添加可执行权限。
#!/bin/bash
read -p "输入文件名:" file
if [ -f $file ]
then
	echo $file文件是普通文件
	len=`expr length $file`
	sub=`expr index $file .`
	((sub++))
	str=`expr substr $file $sub $len`
	if [ $str = "sh" ]
	then
		echo $file文件是脚本文件
		if [ -x $file ]
		then
			echo $file文件具有执行权限
		else
			echo $file文件不具有执行权限
			chmod a+x $file
		fi
	else
		echo $file文件不是脚本文件
	fi
else
	echo $file文件不是普通文件
fi

在这里插入图片描述

  1. 输入一个无符号的八位数,输出他的二进制
echo "obase=进制数;待转换值"|bc
#!/bin/bash
read a
i=0
while [ $a -gt 0 ]
do
	c=1
	b=$(($c&$a))
	arr[$i]=$b
	((i++))
	((a=a>>1))
done
for ((i=7;i>=0;i--))
do 
	if [ -e  ${arr[$i]}  ]
	then
	echo -n ${arr[$i]}
	else
		echo -n "0"
	fi
done
##########################################

read -p "请输入一个数" var
for i in `seq 0 1 7`
do
	if [ $((var&0x80)) -gt 0 ]
	then
		echo -n "1"
	else
		echo -n "0"
	fi
	((var=var<<1))
done

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值