首页 > 系统相关 >Linux shell脚本配置

Linux shell脚本配置

时间:2024-08-03 19:52:38浏览次数:13  
标签:脚本 bin shell expr echo Linux bash

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. 乘号(*)前边必须加反斜杠(/)才能实现乘法运算(/*);


 

标签:脚本,bin,shell,expr,echo,Linux,bash
From: https://blog.csdn.net/qq_69639971/article/details/140895005

相关文章

  • 嵌入式学习---DAY18:shell脚本
    shell脚本文件进程网络HtmlDbshell脚本是一系列shell命令的集合。  shell  命令解释器shell编程:解释型语言、边翻译边执行、擅长文件处理,操作系统管理、开发效率高  cp 1  2、执、效率低、移植性好C语言:编译型语言、先编译再执行、擅长数据计算和数据处理、开发......
  • Linux内核系统体系结构
    Linux内核主要由5个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。进程调度模块用来负责控制进程对CPU资源的使用。所采取的调度策略是各进程能够公平合理地访问CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确......
  • [Linux]常用命令
    PWDpwd显示工作路径shutdownshutdown-hnow关闭系统/halt关闭系统shutdown-rnow重启/reboot重启防火墙systemctlstopfirewalld关闭防火墙IP地址ipaddr查看ip地址cdcd命令:这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参......
  • Linux
    Linux常用命令Linux仅有一个根目录,用/表示(在windows中是\)ls(ListFiles)列出目录和文件名ls-a-l-hcd(ChangeDirectory)切换目录cd[绝对路径/相对路径]cd.表示切换到当前目录cd..表示返回上一级目录,cd../..返回两级目录cd~表示切换home目录pwd(......
  • python 如何获取导入包中运行脚本的文件名
    我有两个脚本:main.pyimportpackage.pypackage.pyimportosprint(os.path.basename(_file_))我的预期输出是main.py,但我得到package.py那么我如何在包脚本中获取正在运行的脚本的文件名?额外描述:事实是,我在p......
  • linux测试cpu性能的命令
    linux测试cpu性能的命令在Linux中,可以使用多种命令来测试CPU性能。以下是一些常用的命令:stress:一个通用的压力测试工具,可以生成CPU、内存、IO等负载。安装:sudoapt-getinstallstress(Debian/Ubuntu)使用:测试所有CPU核心:stress--cpu8测试单个CPU核心:stress--cpu......
  • 抓取脚本标签中的数据
    任何人都可以建议一种方法来抓取a<script>标签中的数据,具体来说,在本例中是来自AEMO的30分钟表(https://www.aemo.com.au/aemo/apps/visualizes/elec-nem-priceanddemand.html)。要获取数据表,我需要单击在网站上显示该表的按钮或下载按钮。然而,这里的障碍是......
  • 如何使用 python (使用服务帐户)在应用程序脚本 Web 应用程序上触发 doGet()?
    我想从返回json的应用程序脚本Web应用程序触发doGet(e)事件。我们的网络应用程序无法在我们的组织域之外访问,因此需要服务帐户。我执行了下面的代码,但“发生错误:401客户端错误”fromgoogle.oauth2importservice_accountfromgoogle.auth.transport.requestsimpor......
  • Shell编程基本介绍
    文章目录Shell简介Shell环境第一个Shell脚本Shell脚本的运行方法基础语法Shell变量定义变量使用变量修改变量的值单引号和双引号的区别将命令的结果赋值给变量只读变量删除变量Shell传递参数特殊字符处理参数说明$*与$@区别Shell字符串三种形式的区别获取字符串长......
  • Shell编程——函数 和 输入/输出重定向
    文章目录Shell函数Shell输入/输出重定向输出重定向输入重定向重定向深入讲解/dev/null文件Shell函数shell中函数的定义格式如下:[function]funname[()]{ action: [returnint;]}参数说明:1、可以带functionfun()定义,也可以直接fun()定义,不带任何......