ubuntu系统中 bash sh ./ source 的使用

发布时间 2023-07-02 15:56:09作者: Derek_dhb

转载自:ubuntu --- 运行.sh文件、编写.sh文件

https://www.cnblogs.com/carle-09/p/12582209.html  

 

1. 关于shell

Shell是什么?1分钟理解Shell的概念! http://c.biancheng.net/view/706.html

Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。

 

#! /bin/sh
#! /bin/bash
#! /bin/csh
#! /usr/bin/env python

 

脚本文件的第一句就要用#! 告诉系统,用哪一种shell运行程序。

 

 2. sh bash ./ source 分别代表什么

例如创建一个test.sh

#! /bin/sh                     #    #! bin/bash --posix
id="hello world"               #    创建一个值为hello world的字符变量
num=99                         #    创建一个值为99的整型变量
echo "derek: $id ; num is : ${num} nd"         #打印出来,用不用大括号{}都可以,用大括号方便解释
注:sh 遵循POSIX规范:“当某行代码出错时,不继续往下解释”。bash 就算出错,也会继续向下执行。

用sh test.sh和bash test.sh都可以执行(这里皮一下很开心,后缀是啥没关系,.sh   .aaa  .derek啥都可以)

 

 如果用 ./test.derek 运行的话

需要赋予权限: chmod +x test.derek

用source运行的话:

source 会把变量上传到当前终端,因此:

 sh 与 bash执行完以后就结束了该shell

总的来说,sh ,bash ,./ source区别是:

sh是bash的不同模式,sh发生错误就停止了,bash继续往下运行;

./与bash一样,只是需要赋予权限chmod +x 文件名;

source与三个不同,运行完不销毁变量内存

 

3. chmod用法:

 https://www.runoob.com/linux/linux-comm-chmod.html