(2)第一个shell脚本和shell变量

1、第一个shell脚本:

打开文本编辑器,新建一个文件,扩展名为sh(sh代表shell),比如:hello.sh

#!/bin/bash
echo "Hello World !"#!” 是一个约定标记,告诉系统脚本需要什么解释器来执行,即使用哪一种Shell。
echo命令用于向窗口输出文本。

2、运行shell脚本

运行Shell脚本有两种方法:作为可执行程序和作为解释器参数。

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

##同运行其他二进制可执行程序一样,通过这种方式运行bash脚本,第一行#!/bin/bash一定要写对,好让系统查找到正确的解释器。
/bin/sh test.sh
/bin/php test.php

##这种方式运行的脚本,不需要在第一行指定解释器信息,因为/bin/sh就是脚本解释器,将脚本文件作为脚本解释器的参数。

3、一个例子:

使用read从stdin读取,并赋值给PERSON变量,然后输出到stdout:

#!/bin/bash
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"

测试步骤:

  • 创建文件read.sh
  • 将上述代码写入文件read.sh
  • 添加执行权限chmod +x read.sh
  • 运行:./read.sh
  • 从键盘输入,然后回车,看到打印消息。

4、shell变量:

4.1、定义变量:

注意事项:

  1. 变量名不加美元符号;
  2. 变量名和等号之间不能有空格。
  3. 变量名首字符必须为字母
  4. 变量名中间不能包含空格
  5. 变量名不能使用标点符号
  6. 变量名不能使用bash关键字,就像C编程不能使用C语言关键字一样。
myURL="http://see.xidian.edu.cn/cpp/linux/"
myNum=100

4.2、使用变量

使用一个变量只需要在变量前面加上美元符号即可;
变量外加上花括号是可选的,加花括号是为了帮助解释器识别变量的边界。

your_name="mozhiyan"
echo $your_name
echo ${your_name}

for skill in Ada Coffe Action Java
do
    echo "I am good at ${skill}Script"
done

4.3、重新定义变量:

已定义的变量可以被重新定义,但是注意第二次定义的时候也不用添加美元符号,只有在使用时才添加;

myURL="http://see.xidian.edu.cn"
echo ${myURL}
myURL="http://see.xidian.edu.cn/cpp/"
echo ${myURL}

4.4、定义只读变量:

使用readonly命令可以将变量定义为只读变量,只读变量值不能被改变:

#!/bin/bash
myURL="http://see.xidian.edu.cn"
readonly myURL
myURL="http://see.xidian.edu.cn/cpp/"
运行脚本,结果如下:
This variable is read only .

4.5、删除变量:

  1. 使用unset命令可以删除变量;
  2. 被删除的变量不能再次使用;
  3. 但是unset命令不能删除只读变量。
#!/bin/sh
myURL="http://see.xidian.edu.cn"
unset myURL
echo $myURL
运行上述脚本没有任何输出。

5、变量类型:

运行shell时,会同时存在三种变量:
1) 局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2) 环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3) shell变量:shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值