Linux shell脚本编程基础之练习篇

简介:   shell脚本编程基础之练习篇。 1、编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息。 #!/bin/bash if [ $# -ne 1 ] then echo "请输入一个参数" exit el...

  shell脚本编程基础之练习篇。

  • 1、编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息。

#!/bin/bash
if [ $# -ne 1 ]
then
        echo "请输入一个参数"
        exit
else
        echo "参数正确"
        newfile=$1
fi

#echo `grep "^#\!" ${newfile}`

if ! grep "^#\!" ${newfile} &>/dev/null
then
cat >>${newfile}<<EOF
#!/bin/bash
# Author: Inert Your Name here.
#Date & Time: `date +"%F %T"`
#Description: Please Edit here.
EOF
fi
vi +5 ${newfile}

 将脚本改个名字例如:newshfile,将其放置在/bin/目录下,那么你的系统就多了一个新的newshfile命令了

  • 2、求100以内偶数的和

#!/bin/bash
# Author: Inert Your Name here.
#Date & Time: 2015-06-02 20:37:07
#Description: Please Edit here.
let sum=0
for index in {1..100}
do
if [ $[ ${index}%2 ] == 0 ]; then
        #let sum+=${index}
        sum=`expr ${sum} + ${index}`
fi
done
echo "sum=${sum}"

let sum=0
for num in $(seq 1 100); do
if [ $[ $num % 2 ] == 0 ]; then
        sum=`expr $sum + $num`
fi
done
echo "sum=$sum"
  • 判断输入的参数个数,如果为两个参数则相加并输出相加后的值
#!/bin/bash
if [ $# -eq 2 ]
then
        echo "参数个数 $#\n"
        echo "参数相加 $1 + $2 = `expr $1 + $2`"
else
        echo "参数个为 $#,本脚本需要两个参数" 
fi
  • 用while\for循环降序输出1~5的值
#!/bin/sh
num=5
while test $num != 0
do
        echo "$num"
        num=`expr $num - 1`
done

echo "*****************************"
num=5
while (($num != 0))
do
        echo "$num"
        num=`expr $num - 1`
done


echo "*****************************"
for num in {5..1}
do
        echo "$num"
done

echo "*****************************"
for ((num=5;$num>0;num=`expr $num - 1`))
do
        echo "$num"
done
  •  加减乘除运算
#!/bin/bash
# Author: Inert Your Name here.
#Date & Time: 2015-06-02 21:32:51
#Description: Please Edit here.
if test $# == 3
then
        echo "参数个数$#,参数:$@"
case $1 in
        +)
        num=`expr $2 + $3`
        ;;
        -)
        num=`expr $2 - $3`
        ;;
        x)
        num=`expr $2 \* $3`
        ;;
        /)
        num=`expr $2 \/ $3`
        ;;
        *)
        echo "只允许+ - x /这几个运算符"
        ;;
esac
echo "num=$num"
else
        echo "参数个数为3个,分别为\"运算符 参数1 参数2\""
fi
  • 浮点数的运算

echo 5.12 + 2.5 | bc

#!/bin/bash
# Author: Inert Your Name here.
#Date & Time: 2015-06-02 22:07:28
#Description: Please Edit here.

a=5.66
b=8.67
c=`echo $a + $b | bc`
echo "$a + $b = $c"
  • 打印以下各种图形效果
1
22
333
4444
55555
****************************
1
12
123
1234
12345
****************************
|_
||_
|||_
||||_
|||||_
****************************
 *
 * *
 * * *
 * * * *
 * * * * *
 * * * * *
 * * * *
 * * *
 * *
 *
************lengxing****************
      *
     * *
    * * *
   * * * *
  * * * * *
 * * * * * *
  * * * * *
   * * * *
    * * *
     * *
      *
#!/bin/bash
# Author: Inert Your Name here.
#Date & Time: 2015-06-02 22:24:41
#Description: Please Edit here.

for ((num=1;$num<=5;num=`expr $num + 1`))
do
        for((index=$num;$index>0;index=`expr $index - 1`))
        do
                echo -n "$num"
        done 
echo ""
done 

echo "****************************"
for ((num=1;$num<=5;num=`expr $num + 1`))
do
        for((index=1;$index<=$num;index=`expr $index + 1`))
        do
                echo -n "$index"
        done
echo ""
done

echo "****************************"
for ((num=1;$num<=5;num=`expr $num + 1`))
do
        for((index=1;$index<=$num;index=`expr $index + 1`))
        do
                if [ $index%2 == 0 ]; then
                        echo -n " "
                else
                        echo -n "|"
                fi
        done
echo -n "_"
echo ""
done

echo "****************************"
for (( i=1; i<=5; i++ ))
do
    for (( j=1; j<=i;  j++ ))
    do
     echo -n " *"
    done
    echo ""
done

for (( i=5; i>=1; i-- ))
do
    for (( j=1; j<=i;  j++ ))
    do
     echo -n " *"
    done
    echo ""
done

echo "************lengxing****************"
max=6
for ((i=1; i<=$max; i++))
do
        for ((j=$max-i; j>0; j--))
        do
                echo -n " "
        done
        for ((k=1; k<=i; k++))
        do
                echo -n " *"
        done
        echo ""
done

for ((i=1; i<=$max; i++))
do
        for ((k=1; k<=i; k++))
        do
                echo -n " "
        done
        for ((j=$max-i; j>0; j--))
        do
                echo -n " *"
        done
        echo ""
done

 

相关文章
|
3月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
29天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
Shell编程(下)
Shell编程(下)
92 1
|
2月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
42 1
|
2月前
|
Shell Linux 开发工具
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
71 12
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
114 6
|
3月前
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
146 3