Shell 学习笔记

#表示该脚本以bash方式运行
1. #!/bin/bash

#接受输入并将值赋给变量
2. read 变量名     

#使用变量
3. ${变量名} 

#此变量只读
4. readonly 变量名          

#删除此变量, 不能删除只读变量
5. unset 变量名

#表示当前shell的pid
6. $$

#(Ess下方键) 命令替换, 将执行结果保存
7. var=`command`

#计算
8. var=`expr 2+2`            

#注释
9. #
10. 字符串
     a. ‘string‘                         #单引号的字符串会原样输出,且里面的变量无效,且单引号内不能再出现单引号,转义也不行
     b. "string"                         #双引号字的符串,可以有变量,可以有转义符
     c. greeting                         #连接字符串
     d. ${#string}                       #获取字符中长度
     e. ${string:1}/${string1:2}         #截取字符串
     f. `expr index ${string} str`       #查找字符串 str,返回索引
11. 数组
     a. 用 "( )" 定义, 用 "空格" 符号来分隔元素
     b. array[0]="a"                        #定义指定下标的值, 下标可以不连续, 下标没有上限
     c. ${array[0]}                          #获取指定下标的值
     d. ${array[*]}/${array[@]}           #获取数组所有元素
     e. ${#array[*]}/${#array[@]}       #获取数组长度
     d. ${#array[n]}                         #获取数组指定下标的元素的长度
12. if...else
     a. if [ express ]  #1. [ 两边必须有空格 ], 等价于 if test express then command fi
     then        #2. [ $a = $b] ,判断符之间也必须有空格
      command
        if
     b. if [ express ]
     then
      command1
        else
      command2
        fi
     c. if [ express ]
        then
      command1
        elif
        then
      command2
        else
      command3
        fi
13. case  in
  case express in  #表达式可以是变量或常量, 后面跟 in 关键字
  match1)       #匹配值后跟 )
    command1    #匹配成功后执行命令
  ;;          #跳出, 相当于 break
  macth2)
    command2
  ;;
  *)          #默认匹配值, 相当于 default
    command5
  ;;
  esac         #结束符
14. for
    for var in exp1 exp2 exp3  #表达式用" "(空格)分隔
    do
        command
    done
15. while
  whil [ express ]  #表达式为 true 继续执行
  do
    command
  done
16. until
  unitl [ express ]  #表达式为 false 继续执行
  do
    command
  done
17. break / continue  #跳出 或 继续, 后面都可以跟一个整数, 表示到第几层循环
18. 函数
  a. function func_name(){  #定义函数, function可省略
      command
    }              #只能返回整数数字, 如果没有指定返回值, 会将最后一条命令执行结果返回
  b. func_name          #调用函数, 不需要加 ( ) , 函数要在调用前定义
  c. $1 ... $9 ${10}      #取参数, 参数个数超过10后需要加 { }
19. 输入/出重定向
  a. < 输入重定向
  b. > 输出重定向
20. 引用其它文件
  a. . fileName
  b. source fileName

本文版权归作者和博客园共有,来源网址:http://www.cnblogs.com/code-boy/欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

时间: 2024-08-06 11:57:10

Shell 学习笔记的相关文章

Shell学习笔记——第三章

第三章 /etc/passwd 文件包含一个所有系统用户账户组成的列表,以及一些关于每个用户的基本信息. 例rich:x:501:Rich Blum:/home/rich:/bin/bash 每个条目都有7个数据字段,例使用冒号分隔.系统使用这些字段中的数据向用户分配具体的特性.这些字段分别有 用户名:用户密码(如果密码存储在其他文件中,则为占位符):用户的系统用户ID编号:用户的系统组的ID编号:用户的全名:用户默认的主目录:用户的默认Shell目录: cd 命令 略过 列表命令(ls) 参数

SHELL学习笔记----IF条件判断,判断条件

SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here       elif list then           do another thing here       else          do something else here fi  EX1: #!/bin/bash if [ `uname -m` == "x86_64" ]

Linux Shell 学习笔记

2.return与exit区别 return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用. exit(0)表示正常退出执行程序,如果加其它的数值:1,2,....可以表示由于不同的错误原因而退出 . main函数中exit(0)等价于return 0. 1. Linux下一条命令或一个进程执行完成会返回一个一个状态码. 0 === 成功执行 非0 === 执行过程

shell学习笔记

一.shell变量 1.变量名与赋值符号间不能有空格. 2.首个字符必须为字母a~z或A~Z. 3.使用一个已定义的变量,在变量名前加'$',如: myName=“firefly” echo $myname echo ${myName} 加花括号帮助识别变量的边界,建议加上s. 4.删除变量:unset varName,不能删除只读变量. 5.三种变量:局部变量.环境变量.shell变量 二.shell替换 1.变量替换 echo -e "hello, Emma!\n" 若无-e,则不

[Bash Shell] Shell学习笔记

1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. 它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序.建立文件并以并行的方式协调各个程序的运行.因此,对于用户来说,s

shell学习笔记之六(测试和判断)

测试和判断 测试 利用命令执行后的$?来判断命令是否执行正常.$?==0 ? 正常:错误 测试结构: 1.test expression 2.[ expression ] #注意表达式两侧的空格 方式2增加了代码的可读性,且更容易与if,case,while这些条件判断的关键字联用. 文件测试: 1.test file_operator FILE 2.[ file_operator FILE ] 例: test -e /var/log/message echo $? #文件存在返回0,不存在返回

shell学习笔记---抄录

SHELL笔记 1.查看一个文件或目录的大小 ls   du 2.查看状态     stat 文件名 3.系统本身所有,通常为大写字母 4.系统变量通过 set 或 declare 指令进行查看 5.UDV 变量(user defined variable) 用户创建和维护,建议大写(为什么?) 原因:避免冲突与混淆,因为 Linux 系统中命令全部采用小写的方式 6.Shell 中所有变量定义都为字符串. 变量区分大小写,如:foo 和 Foo 是两个不同的变量 变量必须以字母或下划线开头,不

CentOS 7 之Shell学习笔记

脚本是个永恒的话题,以前Dos下面也有Shell编程这一说的,比如说BAT文件有人写的好的话,也是瞬间速度变高大上.Linux下面这个应该更占比重了.我看到园子里有位园友做了一个Linux Shell脚本攻略 读书笔记,笔记概括总结的太好了,值得逐一实践. 为学Linux ,我读过的书藉, 这篇也是个不错的总结,前人的经验真是宝贵,分享真是一种态度.

shell 学习笔记整理(二)

特殊字符:    #! 开始的标志    ;  多个命令一起连用的分隔符    [[email protected] log]# echo a;echo b;echo c    a    b    c    .  多种作用:        1. 相当与 source 命令        2. 作为文件名称的一部分(隐藏文件名)  (使用ls -a  可以查看linux下面的隐藏文件)        3.如果作为目录名的话,一个单独的点代表当前工作目录,两个点代表上一级目录.           

Shell学习笔记 - 环境变量配置文件

一.source命令 功能:在当前bash环境下读取并执行配置文件中的命令 1. 命令格式 source 配置文件  或  . 配置文件 2. 命令示例 [[email protected] ~]# source /etc/profile #让/etc/profile配置文件生效 [[email protected] ~]# . /etc/profile #与上面的命令效果一样 二.全局环境变量配置文件 全局环境变量配置文件会对所有用户生效. 1. /etc/profile 作用: 1) 定义U