Linux shell脚本各种烧脑题编写

本文是一篇关于Linux Shell脚本的综合教程,涵盖各种烧脑题,包括数字处理、条件判断、循环控制、文件操作、进程控制等。通过示例代码,介绍了如何编写和运用复杂的Shell脚本,例如计数、循环打印、文件操作、定时任务等。文章适合有一定基础的Shell脚本学习者,旨在提升读者在实际问题中的解决能力。
摘要由CSDN通过智能技术生成

第一列达到100的时候 第二列数字从100向1 处理
第二列数字到50 第三列数字从100递增
第二列数字为0时不显示 第四列数字从1递增

=======================================================================

#!/bin/sh
num1=0
num2=0
num3=0
num4=0
num_2_bak=0
for x in {1..10000}
do
num1=$x
if [ $num2 -gt 0  ];then
num_2_bak=$num2
num2=`expr $num2 - 1`
fi
if [ $x -eq 100 ] ;then
num2=100
fi
if [ $num3 -gt 0 ] ;then
num3=`expr $num3 + 1 `
fi
if [ $num2 -eq 50 ];then
num3=100
fi
if [ $num4 -gt 0 ];then
num4=`expr $num4 + 1 `
fi
if [ $num_2_bak -eq 1 ] ;then
num4=1
num_2_bak=0
fi


if [ $num2 -ne 0  ] ;then
   if [ $num3 -ne 0 ];then
    echo $num1" "$num2" "$num3
    else
    echo $num1" "$num2
   fi
else
 if [ $num3 -ne 0 ];then
    if [ $num4 -ne 0 ] ;then
    echo  $num1" "" "" "$num3" "$num4
    else
    echo  $num1" "" "" "$num3
    fi
    else
    echo $num1
   fi
   
fi
sleep 0.1
done

 

=============================================================================================

#!/bin/bash

#循环打印1到1000

for i in 【1..1000】; do

echo $i

sleep 0.1

done

 

 

==================================================================

#!/bin/sh

#循环打印1..1000 如果是100的倍数,则显示并停止一秒

for i in 【1..1000】; do

result =`expr $1  % 100`

if [ $result -eq 0 ] ; then    

echo  $i '是100的倍数'

sleep 1

else $i

sleep 0.01

fi

done

 

================================================================

#!/bin/sh

#奇数偶数的判断

read -p '请输入一个数字: ' number

data = `expr $number % 2'

if [ $data -eq 1 ]; then

echo $number'是奇数'

else

echo $number'是偶数'

fi

 

 

==================方式二

if  (( $(number) % 2 ==0)) ;then

echo $number'是偶数'

else

echo $number'是奇数'

fi

 

===================方式三,连接数据库

export num1

sqlplus scott/tiger@orcl<<EOF

set echo off;

set 等其他属性;

define num1=$num

spool /root/lianxi/number.txt

select mod( $num1,2) from dual;

spool off;

EOF

data=`cat number.txt`

if  [ $data -eq 0 ]; then

echo $number'是偶数'

else

echo $number'是奇数'

fi

 

 

==================================================================================

vi 1.sh

#!/bin/sh

echo $1

sh 1.sh 111 aaa 5

调用第一个变量用:$1  结果就是:111

调用第二个变量用:$2  结果就是:aaa

调用第三个变量用:$3  结果就是:5

 

 

=========================================================================

(1)创建一个文件a.txt在/tmp文件夹下

(2)创建一个lianxi1文件夹

(3)使用ftp连接本机ftp服务器(127.0.0.1)

(4)进入/tmp文件夹,并下载文件a.txt到/tmp/lianxi1文件夹

(5)退出ftp模式

(6)显示下载成功


Cd Desktop
Touch kuozhan.sh
Chmod +x kuozhan.sh
Vi kuozhan.sh
#!bin/sh
If [ ! -e /tmp/a.txt ];then 
Touch /tmp/a.txt
Fi
Fi [ ! -e /tmp/lianxi ];then
Mkdir /tmp/lianxi
Fi
ftp -v -n 127.0.1 << EOF
User root root123
Cd /tmp
Lcd /tmp/lianxi
Get a.txt a.txt
Bey
EOF

If [ -e /tmp/lianxi/a.txt ]
Then
Echo “下载成功”
Fi
Esc:wq

./kuozhan.sh

         

 

========================================================================

while 循环读取文件的内容

cat a.txt | while read line ---循环的逐行读取

do

echo $line

done 循环读取文件中的每一行

 

=======================================================================

奇数行打印*,偶数行打印#      

Touch jioushu.sh

Chmod +x jioushu.sh

#!/bin/sh

#奇数偶数判断

Read -p `请输入最大数字: ` pnum

For i in `seq $pnum`    ---从1开始取值

Do

If (( $i % 2 ==0 ));then    ---偶数

If [ `expr $i % 2` ==0 ];then

-----第二种写法

Echo ‘#’

Else    --奇数

Echo $i‘*’

fi

done

 

====================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值