shell 环境
shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身(如Windows Explorer扩展开发)。
linux shell 常见种类:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
常用的为Bourne Again Shell (#!/bin/bash)
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
执行shell的方式
- 作为可执行程序
将代码保存到 test.sh中,并cd 到相应目录
chmod +x test.sh #添加执行权限
./test.sh #执行脚本
- 作为解释器参数
bash test.sh
shell 变量
- 命名规范
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线(_)。
- 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
如:var=1
- 使用变量
echo $var
echo ${var}
需要在变量前面加一个"$"符,变量名外面的大括号可加可不加,加上是为了让解释器区分变量的边界
- 只读变量
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
var=1
readonly var
var=2
会提示错误信息 : read-only variable: var
- 删除变量
使用 unset 命令可以删除变量。语法:
unset var
变量被删除后不能再次使用。unset 命令不能删除只读变量