一、运行

1、window环境下运行可以安装git(https://git-scm.com/downloads),安装好后打开 Git Bash图形界面,在图形界面中运行

shell学习01——从hello world开始_shell变量

 

 shell学习01——从hello world开始_shell变量_02

 

2、运行方式

在Git Bash中输入     sh  sh文件路径/sh文件名   

 shell学习01——从hello world开始_环境变量_03

 

1、常量

echo "hello world"

输出结果:
shell学习01——从hello world开始_局部变量_04

 

 2、变量

注意:

1,变量名和等号之间不能有空格;

2,首个字符必须为字母(a-z,A-Z)。

3, 中间不能有空格,可以使用下划线(_)。

4, 不能使用标点符号。

5, 不能使用bash里的关键字(可用help命令查看保留关键字)。

使用变量:

只需要在一个定义过的变量前面加上美元符号 $ 就可以了, 另外,对于变量的{} 是可以选择的, 它的目的为帮助解释器识别变量的边界.

例子:

例1:

username="yuluping"

注意:=两边不能有空格

echo ${username}   注:{}可以省略,{}用来表示变量左右两边的边界

echo "my name is ${username}!"

输出结果:
shell学习01——从hello world开始_git_05

 例2:

money=1000
name="李华"
echo "我借了${name}${money}元。"

输出结果:

shell学习01——从hello world开始_双引号_06

 

 例3:重定义变量

money=1000
name="李华"
name="王五"
echo "我借了${name}${money}元。"

 输出结果:
shell学习01——从hello world开始_git_07

 

例4:只读变量  readonly

readonly 命令 可以把变量字义为只读变量。

readonly name="zhangsan"

或写为:

name="zhangsan"

readonly  name


echo "my name is ${name}"

输出结果:
shell学习01——从hello world开始_git_08

 

 

 例5:删除变量  unset

使用unset命令可以删除变量,但是不能删除只读的变量。用法:unset  变量名

如:unset  username

 

 例6:变量类型

运行shell时,会同时存在三种变量:

1) 局部变量

局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

2) 环境变量

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

3) shell变量

shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

特殊变量:

shell学习01——从hello world开始_环境变量_09

∗和∗和@ 的区别为: ∗和∗和@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"1""1""2" … "n"的形式输出所有参数。但是当它们被双引号("")包含时,"n"的形式输出所有参数。但是当它们被双引号("")包含时,"*" 会将所有的参数作为一个整体,以"112 … n"的形式输出所有参数;"n"的形式输出所有参数;"@" 会将各个参数分开,以"1""1""2" … "$n" 的形式输出所有参数。

$? 可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 1。

 

例7:转义字符

转义符:

在echo中可以用于的转义符有:

shell学习01——从hello world开始_双引号_10

使用 echo 命令的 –E 选项禁止转义,默认也是不转义的; 使用 –n 选项可以禁止插入换行符;

 

使用 echo 命令的 –e 选项可以对转义字符进行替换。