首页 > 系统相关 >linux shell编程入门

linux shell编程入门

时间:2023-07-27 22:56:19浏览次数:54  
标签:脚本 shell 变量 编程 sh 参数 linux hello

摘要

  1. 介绍shell是什么
  2. shell快速开始

一、基本概念

1. shell是什么

  • Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序
  • 用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

2. shell脚本 | 执行方式

脚本格式要求

  1. 脚本以#!/bin/bash开头
  2. 脚本需要有可执行权限
  3. 脚本一般命名规范为 .sh结尾,当然可以不这样写
#!/bin/bash

脚本的常用执行方式

  1. 方式1(输入脚本的绝对路径或相对路径)

    说明:首先要赋予helloworld.sh脚本的+x权限,再执行脚本

  2. 方式2(sh+脚本)

    说明:不用赋予脚本+x权限,直接执行即可


3. 快速开始

编写第一个Shell脚本

需求说明:创建一个Shell脚本,输出hello world!

vim hello.sh
#!/bin/bash
echo "hello,world!"

执行

chmod u+x hello.sh
./hello.sh

二、shell变量

  • shell变量详见这篇博客
  • 环境变量也属于shell变量

三、shell注解

四、位置参数变量

  • 就是在用命令行执行文件的时候添加参数,要在文件中能够读取参数
  • 下面给出了基本的转义符,详细内容见这篇博客
转义符 说明
$n n为数字,$0代表命令本身,$1-$9代表第一到第九个参数
十以上的参数需要用大括号包含,如$
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@ 这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
$# 这个变量代表命令行中所有参数的个数

五、预定义变量

就是shell设计者实现定义好的变量,包括(详细可以见这篇博客

转义符 说明
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号(PID)
$? 最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0
(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

六、shell运算符

$((运算式))“或“$[运算式]”或者expr m + n。详细见这篇文章

七、shell流程控制

  1. if条件分支
  2. 循环
  3. case分支

八、函数

  1. read函数
  2. 自定义、调用函数
  3. 内置函数

标签:脚本,shell,变量,编程,sh,参数,linux,hello
From: https://www.cnblogs.com/CrispyCandy/p/17586339.html

相关文章

  • linux日志管理服务:rsyslogd | 日志管理服务配置文件 | 日志类型 | 日志级别 | linux添
    摘要介绍linux的日志管理服务关于linux的日志可以查看这篇博客一、rsyslogd介绍CentOS7.6日志服务是rsyslogd,CentOS6.x日志服务是syslogd,rsyslogd功能更强大。rsyslogd的使用、日志文件的格式,和syslogd服务兼容的。二、指令1.查看服务是否自启动指令功能说......
  • linux日志轮替:日志轮替配置文件 | 设置日志轮替 | 日志轮替原理
    摘要介绍linux日志轮替logrotate原理及操作一、linux日志轮替日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除目的是防止一个文件保存的日志太多:定时将日志文件的内容做好备份二、日志轮替文件命名centos7使......
  • linux内存日志 | journalctl指令
    摘要一、linux内存日志就是有些日志仅仅在系统允许过程中写在内存当中,但是并不会保存到硬盘当中重启后,内存日志就会情况二、指令指令功能说明选项journalctl查看全部journalctl-n3查看最新3条journalctl--since19:00--until19:10:10查看起始......
  • 23年暑假大一第一周编程练习
    23年暑假大一第一周编程练习1.消失的数字:deffind_missing_number(nums):#计算完整数组的和complete_sum=sum(range(1,len(nums)+2))#range包:[1,7)#print(complete_sum)#1+2+3+4+5+6=21#计算数组中所有数的和array_sum=sum(nums)......
  • shell条件判断 | shell if语句
    摘要shell的if语句shell的elif语句一、基本语法if[condition]then 程序fi注意:condition前后要有空格condition的语法见这篇博客多条分支如下if[condition1]then 程序elif[condition2]then 程序2fi二、快速入门1.if案例1:"ok"是否等于"ok"(判断语......
  • shell case语句
    主要内容介绍linuxshell的case语句一、基本语法case$变量名in"值1") 程序1;;"值2") 程序2;;#其他分支*) 默认匹配程序;;esac#最后用case的倒序esac结束二、快速入门要求:当命令行参数是1时,输出"周一",是2时,就输出"周二",其它情况输出“other"#!/bin/bash#当......
  • linux shell判断条件
    摘要shell的if或者while语句中的判断条件,可以用于if,for,while语句中判断条件判断类型符号说明举例字符串比较=字符串比较(数字比较不用=)"ok"="ok"整数比较-ltlittle小于1-lt2-lelittleequal小于等于1-lt1-eqequal等于1-lt1-......
  • linux shell read函数
    摘要shell中使用read读取控制台输入一、基本语法read[选项][参数]选项选项说明参数-p指定读取值的提示符(就是一段文字)字符串(提示符)-t指定读取值时等待的时间(秒)),如果没有在指定的时间内输入,就不再等待了数字,单位是s变量指定读取值的变量名二......
  • shell循环:for循环 | while循环
    摘要介绍shellfor循环的语法,主要有两种forinfori=0;i<n;i++这样的语法介绍shell的while循环shell的判断条件看这篇博客一、for循环1.基本语法有两种形式for变量in值1值2值3do 程序donefor((初始值;循环控制条件;变量变化))do 程序done2.应......
  • linux shell函数:定义函数 | 调用函数
    摘要介绍shell如何定义并调用函数的一、基本语法定义函数[function]funcname[()]{ Action; [returnint;]}调用函数functame[值]二、快速入门案例1:计算输入两个参数的和,getSum#!/bin/bash#计算输入两个参数的和,getSum#定义函数getSumfunctionge......