Skip to content

Linux Shell 入门

方跃明 2017-08-09

师傅领进门,修行在自身。

脚本文件

  • 扩展名:.sh
  • 第一行:#!/bin/bash
  • 执行
    • chmod +x shell脚本
    • ./shell脚本

脚本内部执行命令

反引号

变量

系统变量

名称说明
PATHshell查找命令的目录列表,由冒号分隔
HOSTNAME当前主机名
HOME当前用户主目录
SHELL当前shell
USER当前用户
UID当前用户ID
GID当前用户组ID
PWD当前所在目录
OLDPWD上次所在目录
0当前命令名称
n当前命令的第n个参数,n=1,2,...,9
*以”参数1,参数2…..”形式保存所有参数
@以”参数1”,”参数2”…..”形式保存所有参数
#命令行参数的个数
?执行上一个指令或函数的返回值,0=没有错误
$本程序的PID(ProcessID)
!后台运行的最后一个进程的进程ID号
-显示shell使用的当前选项,与set命令功能相同
_shell的绝对路径名,最近执行的命令,最近命令最后一个参数
LINENO当前执行的脚本行号

用户变量

定义变量

  • 变量名=变量值

引用变量

  • $变量名
  • $

只读变量

  • 变量名=变量值
  • readonly 变量名

删除变量

  • 变量名=变量值
  • unset 变量名

字符串变量

定义

  • 单引号字符串变量='不可转义字符串'
  • 双引号字符串变量="可转义字符串"

获取字符串长度

shell
string="abcd"
echo ${#string}     # 4

提取字符串

shell
string="runoob is a great site"
echo ${string:1:4}  # unoo

查找字符串位置

shell
string="runoob is a great company"
echo `expr index "$string" is`  # 8

数组变量

定义数组

shell
array_name=(value0 value1 value2 value3)  # 整体定义,可分行
array_name[0]=value0                      # 可单独定义

引用

shell
echo ${array_name[n]}   # 读取第n个数组,数组下标从0开始
echo ${array_name[*]}   # 读取所有数组
echo ${array_name[@]}   # 读取所有数组

获取长度

shell
${#array_name[n]}     # 第n个数组长度
${#array_name[*]}     # 整个数组长度
${#array_name[@]}     # 整个数组长度

运算符

控制语句

思维导图

基础知识文件目录文本处理Shell脚本1Shell脚本2Shell脚本3

图片来自网络,侵删。

Linux
Shell