菱形打印和十进制ip转二进制

1.菱形打印

用for循环

bash 复制代码
#!/bin/bash

read -p "请输入菱形的大小:" num
#打印向上的等腰三角形
for ((i=1;i<=num;i++))
do
   for ((j=num-1;j>=i;j--))
   do
     echo -n " "
#打印的是前面的空格
   done

   for ((k=1;k<=2*i-1;k++))
   do
     echo -n "*"
#打印的是*
   done
  echo 

done

#打印向下的等腰三角形
for ((i=num-1;i>0;i--))
do
  for((j=1;j<num-i+1;j++))
  do
    echo -n " "
  done

  for((k=2*i-1;k>0;k--))
  do
    echo -n "*"
  done
  echo
done

用函数来表示

bash 复制代码
#!/bin/bash
read -p "请输入一个数字来控制函数的大小(数字越大菱形越大):" num
#打印菱形上半部分
shang () {
i=1
NUM=$1
while [ $i -le $NUM ] 
do
  a=$NUM
  while [ $a -ge $i ]
  do
  echo -n " "
  let a--
  done
  b=1
  while [ $b -le $i ]
  do
  echo -n "*"
  let b++
  done
  c=2
  while [ $c -le $i ] 
  do
  echo -n "*"
  let c++
  done
echo " "
let i++
done

}
#打印菱形下半部分
xia (){
let d=$1-1
while [ $d -ge 1 ]
do
  e=$1
  while [ $e -ge $d ]
  do
  echo -n " "
  let e--
  done
  f=$[(2*d)-1]
  g=1
  while [ $g -le $f ]
  do
  echo -n "*"
  let g++
  done
let d--
echo " "
done

}


shang $num

xia $num

2.十进制ip转二进制

bash 复制代码
#!/bin/bash
bin () {

SUM=''
NUM=$1
for i in {1..8}
do
  SUM=$[NUM%2]$SUM
  let NUM/=2
done
echo $SUM

}

#定义一个分割IP的函数
SPT () {
  IP=$1
  for i in {1..4}
  do
  num=${IP%%.*}
#取首字段的ip
  IP=${IP#*.}
#除了首字段其余保留,并重新复制
#使用bin函数进行转化
  BIN=$(bin $num)
  echo -n $BIN.
#不换行输出并在后面加上点,形成ip地址的格式
  done

}


read -p "请输入一个十进制的IP地址:" SIP
RES=$(SPT $SIP)
#调用SPI函数,对标准输入的SIP进行转换
echo "输出的二进制IP为:"  ${RES%.*}
#去除IP末尾的那个点

相关推荐
老当益壮梁奶奶10 分钟前
Linux软件编程学习笔记(十一):深入浅出 TCP 协议与 Socket 编程实践
linux·c语言·笔记·学习·tcp/ip
speop22 分钟前
hell-gpu| TASK01-2
linux·运维·算法
byte轻骑兵35 分钟前
【BlueZ 】用户态入口:main.c 核心函数与程序启动流程
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
Tisfy1 小时前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历
liulilittle1 小时前
REALITY 代理隧道的有效检测方法: 被动、主动与确定性三层实证研究
linux·服务器·网络·网络协议·安全·网络安全·通信
邪修king2 小时前
Re:Linux 系统篇(十五):进程篇(四):进程切换深度解析 —— CPU 寄存器、进程上下文与切换全流程万字详解
linux·运维·服务器
高亦真2 小时前
今天是学习嵌入式的第33天
linux·学习·算法
cuijiecheng20182 小时前
Rocky Linux 安装 libltc、ltc-tools 和 ltcdump
linux
BlueAsia_Lab2 小时前
BQB 认证执行标准是什么?核心条款通俗解读
linux·运维·网络
小小、码农2 小时前
【网络】套接字(Socket)编程——TCP版
linux·服务器·网络·c++·网络协议·tcp/ip