Linux shell脚本配置

shell编程和c语言的比较

  • shell编程:shell是一种解释型语言,擅长文件处理和操作系统管理,开发效率高但执行效率低,移植性好。

  • c语言:编译型语言,先编译再执行,擅长数据计算和数据处理,但开发效率低,执行效率高移植性差。

shell脚本编程

        shell命令解释器:Bash, Ksh, Csh, Ash

        shell脚本的本质就是一系列shell命令的集合


1.shell脚本编写流程

  • vim XX.sh           #!/bin/bash
  • 编写脚本
  • chmod +x XX.sh(改变文件权限)
  • ./XX.sh 

2.shell变量

1.环境变量: env

  1. PATH:保存当前工作的默认路径
  2. PWD:当前所在的工作路径
  3. HOME:当前登录用户的家目录
#!/bin/bash 
echo "hello world"
#include <stdio.h>
#include <stdlib.h>
//命令行参数
// ./a.out 112312 21231231
int main(int argc, char *argv[])
{
    if(argc<3)
    {
        printf("error:./a.out num1 num2\n");
        return 1;
    }

    printf("argc is %d\n",argc);
    int i =0;
    for(i = 0 ;i<argc;i++)
    {
        printf("%s\n",argv[i]);
    }

    int num = atoi(argv[1]) + atoi(argv[2]) ;
    printf("num %d\n",num);
    
    return 0;
}

2.位置变量: 
  • $0:脚本文件名
  •  $1:传入脚本的第一个参数
  • $2:传入脚本的第二个参数
  • ...

  • $#:传入参数的个数
  •  $?:上一句shell命令执行的结果
  •  $$:当前shell的PID
3.shell脚本输入输出

  • 输入:read  a 
  • 输出:echo  '$a'
     
4.打印
  •  " ":打印字符串,遇到$变量则打印变量中的值
  • '':打印字符串,遇到$变量依然打印$变量
  •  ``:将中间的字符串按照命令打印
5.shell test命令
-eq =-ne!=
-gt>-lt<
-ge>=-le<=
-f普通文件-d目录文件
-b块设备文件-c字符设备文件
-L链接文件-S套接字文件
-p管道文件
#!/bin/bash 
a=20
b=30

if test $a -gt $b
then
    echo "a >  b"
elif [ $a -eq $b ] 
then 
    echo "a == b"
else 
    echo "a < b"
fi

3.分支语句

 

1. if语句
#!/bin/bash 
echo "输入文件名"
read filename
if [ -e $filename ]
then 
    cat $filename 
else  

    touch $filename 
    echo "hello world" > $filename  #输出重定向
fi
2. case语句
#!/bin/bash 
echo "input num 1-10"
read a 

case $a in 
    1)
        echo "num is 1"
        ;;
    3|4|5)
    
        echo "num 3-5"
        ;; 
    *)
        echo "other"
        ;;
esac
3. while语句
#!/bin/bash 
i=0
while [ $i -lt 100 ]
do
    echo "$i"
    #i++;
    i=`expr $i + 1`

done
4. for语句

              

例如:每隔五个输出从20至100的数

#!/bin/bash 
for i in `seq 20 5 100`
do 

    echo "$i"
done
5. until语句
#!/bin/bash 
i=0
until [ $i -eq 100 ]
do 
    echo "$i"
    i=`expr $i + 1`
done


练习:从终端接收两个数,并打印出这两个数四则运算的结果

#!/bin/bash 
read a 
read b

c=`expr $a + $b`
echo "a+b $c"

c=`expr $a - $b`
echo "a-b $c"

c=`expr $a \* $b`
echo "a*b $c"

c=`expr $a / $b`
echo "a/b $c"

注意:

  1. 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  2. 完整的表达式要被两个反引号(` `)包含,注意这个字符不是常用的单引号,在 Esc 键下边。
  3. 乘号(*)前边必须加反斜杠(/)才能实现乘法运算(/*);


 

  • 41
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值