shell 编程笔记 (二)

第四课 shell脚本的建立和执行

1.  Shell脚本(bash shell程序)通常是在编辑器(如vi/vim)中编写,由unix/linux命令、bash shell命令、程序结构控制语句和注释等内容组成。

2.  一个规范的shell 脚本的第一行会指出由哪个程序(解释器)来执行脚本中的内容,在linux bash编程中一般为:

#!/bin/bash

#!/bin/sh

“#!” 又称作幻数,在执行bash脚本的时候,内核会根据它来确定该用哪个程序来解释脚本中的内容,这一行必须在脚本顶端的第一行,如果不是第一行则为注释。

第五课 shell脚本的执行

1.  当shell脚本以3交互的 方式运行时,它会先查找环境标量ENV,该变量指定了一个环境变量文件(通常是.bashrc),然后从该环境变量文件开始执行,当读取了ENV文件后,SHELL才开始执行shell 脚本中的内容。

Shell脚本的执行可以采用以下三种方式:

    (1)bash script-name 或 sh script-name (推荐使用)

    (2)path/script-name 或 ./script-name(当前路径下执行脚本)

    (3)source script-name 或 . script-name  #注意 “.”后边有空格

第一种方法是当脚本文件本身没有可执行权限(即文件x位为-号)时常使用的方法,推荐的使用方法。

第三种方法通常是使用source或者”.”点号读入或加载指定的shell 脚本文件(san.shll),然后,依次执行指定shell 脚本文件san.sh中的所有语句。这些语句将作为当前父shell脚本father.sh进程的一部分运行。因此,使用source或者”.”点号可以将san.sh自身脚本中的变量的值或者函数等的返回值传递给当前的父shell脚本father.sh中使用。这是第三种方法和前两种方法最大的区别。

第三种执行方法特殊之处例子演示。

当前的命令行窗口是一个shell,test.sh是另一个shell。用sh 等方法执行脚本中定义了变量dir。但是dir是test.sh的局部变量,不能将dir局部变量传到当前命令行的shell中。所以在当前命令行中echo $dir为空。

但是,用”.” 或者source来执行脚本时,就会把脚本中的变量传到父脚本中来,父脚本可以引用到。

再例如:

 

面试题:

已知如下命令及返回结果,请问echo $user的返回结果为()

[oldboy@test~]$cat test.sh

user=`whoami`

[oldboy@test~]$sh test.sh

[oldboy@test~]$echo $user

问:执行echo $user命令 的结果是什么?

答案:空(无内容输出)

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值