shell script学习记录(2)
来源:互联网 发布:nginx 内置变量 编辑:程序博客网 时间:2024/05/22 16:53
先上sh02.sh内容(内容来自《鸟哥的Linux私房菜基础学习篇》)。
<span style="font-size:18px;">#!/bin/bash#Program:#User inputs his first name and lastname. Program shows his full name.#History#2016/09/26 first releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHread -p "Please input your first name:" firstnameread -p "Plaese input your last name: " lastnameecho -e "\nyour full name is:$firstname $lastname"#exit 0</span>分别使用source sh02.sh
./sh02.sh
sh sh02.sh运行脚本文件。发现结果如下图:
也就是说,使用source sh02.sh 运行时,变量的值使可以继续在当前的进程中得到的。而使用另外两种命令运行的话,不会改变这个变量的值。(记得测试的时候需要用不同的字符串测试,不然很容易误解的,不要问我怎么知道的~~)
事实上,如果最先运行的不是 source sh02.sh的话,那个echo $firstname的结果什么都没有。
书上的解释是,sh sh02.sh和./sh02.sh运行的时候,其实script是在子进程的bash内执行的,当子进程完成后,子进程的各项变量或者操作将会结束而不会传回到父进程中。
source sh02.sh运行时,是在父进程中运行的。
另外,还有一个不同的地方是exit 0的效果。
书上的案例,在这里是没有exit 0的,但是我因为偷懒就把之前sh01.sh的内容直接copy过来,所以exit 0开始还有。下面说说有exit 0 的时候的结果:
source sh02.sh运行结束之后,终端会关掉。
sh sh02.sh和./sh02.sh运行结果完全和没有exit 0 的结果相同。
显然,这个结果,也很好地验证了上面的那个关于父进程和子进程的结论。
0 0
- shell script学习记录(2)
- shell script 学习记录
- Linux学习记录--shell script
- shell script 学习记录 1
- shell script学习笔记2
- linux下shell script学习(一)
- linux下shell script学习(二)
- Shell Script 的学习
- 学习Shell script
- shell script学习备忘
- 学习shell script
- 学习 shell script
- Shell Script 学习整理
- shell script 学习
- 学习shell script
- Linux shell script学习
- 学习shell script
- Shell Script 学习笔记
- StringBuffer和StringBuilder的清空操作
- [Yii一句话博客]隐藏Index.php
- [leetcode] 18. 4Sum
- HttpClient在Android Studio中无法使用的问题。
- MFC中遇到的一些问题
- shell script学习记录(2)
- MySql和Oracle的区别
- eclipse 项目红叉问题之一
- STM32之中断与事件---中断与事件的区别
- 小白學JAVA-----P2148
- 关于oracle函数listagg的使用说明
- 静态与动态顺序表操作的C语言实现
- javascript核心 八 ---使用jQuery的库 jquery-1.11.1.js
- C# 接口的隐式与显示实现