关于

shell script是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。

shell和shell脚本的区别

Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。
Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;

命令 echo $SHELL 可以查看linux系统的默认解析,当然终端面板上面也显示了


运用

基本使用介绍

  • 创建一个.sh(代表shell)为扩展名的文件【扩展名不影响文件的执行,使用js扩展名也行,但是规范扩展名可读性更强】
  • 输入代码,第一行一般是#!/bin/bash【其中"#!" 是一个约定的标记,告诉系统脚本需要什么解释器来执行,即用哪一种Shell,如果#!指定指定的解析器不存在 则会使用系统默认的解析器】
  • 执行脚本,执行脚本有如下三种形式
    1. bash xxx.sh执行文件【指明先用bash解析器解析,如果bash不存在才会使用默认解析器】
    2. sudo su获取操作权限,然后在通过. xxx.sh执行文件【这种方式直接使用默认解析器解析】
    3. chmod +x xxx.sh添加可执行文件,再通过./xxx.sh执行文件【先按照文件中#!指定的解析器解析,不存在使用默认】

命令行使用

  1. # # 表示注释当前行,下面是多行注释
:<<EOF
注释内容...
注释内容...
EOF
  1. echo hello echo命令用于向窗口输出文本。

  2. 定义变量名

    • 使用变量名=的方式,通过$去引用变量

      • 变量名和等号之间不能有空格、只能使用英文字母,数字和下划线,首个字符不能以数字开头
      • 中间不能有空格,可以使用下划线 _,不能有标点符号,不能使用bash里的关键字
    • unset 变量名 清楚变量
    • readonly 变量名 只读变量,不能修改,只能读取
    name = 'yan'echo $nameunset name # 清楚变量echo $namereadonly age age = 19 #报错:test.sh: line 19: age: command not foundecho $age
  1. 字符串相关操作

    • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
    • 双引号里可以有变量,且可以有转义字符
    • 提取字符串${变量:索引1:索引2}
    • 获取字符串长度 ${#变量名}
#拼接字符串
name="runoob"
# 使用双引号拼接
greeting="hello, "$name" !"
greeting_1="hello, ${name} !"
echo $greeting  $greeting_1 // hello, runoob ! hello, runoob !
# 使用单引号拼接
greeting_2='hello, '$name' !'
greeting_3='hello, ${name} !'
echo $greeting_2  $greeting_3 // hello, runoob ! hello, ${name} !
# 提取字符串
string="Yan、yan_yan"
echo "输出:" ${string:1:4} # 输出: an、y
#获取字符串长度
string="yan"
echo ${#string} #输出 4
  1. 数组变量

    • 定义数组,array_name=(value0 value1 value2 value3),括号包裹数组,变量之间使用空格
    • 读取数组变量${数组名[下标]}
    • @获取数组的所有元素,echo ${array_name[@]},@替换成*也是一样的
arr=(1 4 'yan' 23)
# echo ${arr[2]} # yan
# echo ${arr} # 1
echo ${arr[@]} # 输出全部数组 1 4 yan 23
echo ${arr[*]} # 同上
  1. 手动输入赋值变量

    • 通过 read 的形式可以读取键盘输入的变量值,但只允许后面跟一个变量,否则会报错
    • 加参数 -p 则可以一行显示,更好的读取体验
    • 通过$0可以获取执行文件名,$1可以获取第一个输入的参数,$2是第二个输入参数,以此类推
    read -p "请输入num值:" numecho "输入的变量值是:"$num# 键盘读取多个值read name ageecho "输入的姓名年龄是:$name $age"    # 获取输入参数echo $0echo $2echo $1

  • 其他特殊字符
  1. 运算符操作

    • 使用``反引号,里面的操作数需要用空格隔开,其中expr 是一款表达式计算工具,使用它能完成表达式的求值操作
    • 乘号(*)前边必须加反斜杠()才能实现乘法运算;
    • if…then…fi 是条件语句
# 运算符
val=`expr 2 + 2`
echo "两数之和为 : $val"
a=10
b=20
val=`expr $a + $b`
echo "两个变量a + b 之和: $val"val=`expr $a \* $b`
echo "a * b : $val"if [ $a == $b ]
thenecho "a 等于 b"
fi
if [ $a != $b ]
thenecho "a 不等于 b"
fi# 上面的判断最后输出:a 不等于 b

常用算术符号

8. 其他
* $表示取结果。和变量名一起使用表示取变量的值,和()一起使用表示取命令群组的执行结果
* 使用关键字data可获取时间

    echo $(date) # 2021年11月30日 星期二 16时43分53秒 CSTecho $(date +%Y%m%d-%H%M%S) # 20211130-164353echo $(ls /) # Applications Library System Users Volumes bin cores dev etc home opt private sbin tmp usr var

参考

https://baike.baidu.com/item/Shell%E8%84%9A%E6%9C%AC

shell基础脚本命令记录相关推荐

  1. Shell红客脚本命令

    Shell红客脚本命令 一.基本Shell命令 二.运行Shell脚本的方法 三.特殊符号Shell命令 四. shell注释 五.shell变量 六. Shell命令printf命令 七.shell ...

  2. linux shell运行脚本命令行参数,shell脚本命令行参数简介

    之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互. bash shell提供了命令行参数添加在命令后面的数据值).命令行选项修改命令行为的单字符值)和直接读取键盘输入. 1.命 ...

  3. [shell基础]——sed命令

    ---恢复内容开始--- 关于sed sed 是一种在线编辑器,它一次处理一行内容. 处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着 ...

  4. shell/bash脚本命令教程

      shell/bash其实就是我们日常在unix系统终端中执行的语句,只是通常我们在命令行中都是单行语句执行的,而有时,我们希望将一些操作命令写到一个文本中,让电脑自动按顺序或是并行地执行这些命令, ...

  5. shell基础--- wc命令

    linux shell wc命令 wc命令的功能为统计指定文件中的字节数.字数.行数, 并将统计结果显示输出. 语法:wc [选项] 文件- 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给 ...

  6. [shell基础]——uniq命令

    uniq命令常见选项       去除重复行       -u  显示不重复的行       -d  显示有重复的行       -c  打印每一行重复的次数 测试文本内容如下: # cat 4.tx ...

  7. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...

    一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境        2> 练习命令历史.命令别名        ...

  8. shell for循环命令行_精心汇总的24道shell脚本面试题

    虽然现在Python在运维工作中已经使用很普遍,但是很多企业在找Linux云计算工程师的时候还是会问到 shell 脚本的问题,它有助于你在工作环境中自动完成很多任务. 如下是一些面试过程中,经常会遇 ...

  9. shell for循环命令行_24 道 shell 脚本面试题

    想要成为中高级phper, shell 脚本是需要掌握的,它有助于你在工作环境中自动完成很多任务. 如下是一些面试过程中,经常会遇到的 shell 脚本面试问题及解答: Q:1 Shell脚本是什么. ...

  10. shell脚本编程学习笔记1(xdl)——shell基础与Bash基本功能()

    shell脚本编程学习笔记1--shell基础与Bash基本功能 1,简介: 1,Shell就是一个命令行解释器,用以连接输入设别和内核. 2,Shell是解 释执行的脚本语言,在Shell中可以直接 ...

最新文章

  1. go linux 源码编译环境,Linux 源码安装 GO 环境
  2. springboot 单元测试
  3. vs2015 去除 git 源代码 绑定,改成向tfs添加源码管理
  4. 【问题记录】RIDE-1.7.3.1控制台及日志中文乱码处理
  5. android 调用系统短信接口开发,聚合数据Android SDK 短信api接口验证演示示例
  6. sqlserver 调优(三)
  7. ssms的导入功能_SSMS 17中的新增功能; PowerShell和DAX
  8. Python深度学习(什么是深度学习)----学习笔记(一)
  9. ubuntu下安装搜狗输入法
  10. 【Unity】Transform—用代码设置父子关系
  11. mysql课设体会_课程设计心得体会8篇
  12. 计算机检索系统常用的运算符,计算机信息检索过程中常用的检索表达式 计算机信息检索系统.doc...
  13. java获取法定节假日_java 获取n个工作日后的日期(包含法定节假日、双休日、节后补班)...
  14. hadoop的基本命令、java程序处理hd…
  15. 什么样的人适合学习嵌入式开发
  16. Android 调整进程的最大fd 数目
  17. 【学生必备求职指南】好简历是怎样炼成的?毕业生简历实例点评版
  18. java能开发硬件程序吗,跳槽薪资翻倍
  19. 【渝粤题库】陕西师范大学210005幼儿教育学作业(高起专)
  20. 2021年中国纱线行业产量、进出口及经营规模情况分析[图]

热门文章

  1. 计算机键盘上的tab键是什么键,键盘Tab键有什么作用?
  2. 外贸出口流程全图(转)
  3. excel几个数相加等于某个数_Excel如何在一串数字中找出几个之和等于某个特定值...
  4. 列宽一字符等于多少厘米_Excel中行高多少等于1厘米?列宽多少等...
  5. ajax不执行回调函数的原因
  6. ICMP协议的作用是什么?
  7. Pr全套视频教程 PR 全套零基础从入门到精通视频教程
  8. img标签中alt属性与title属性
  9. 3DMax设置长度单位
  10. 龙芯3A3000上实现BLFS的轻量级桌面LXDE