linux创建shell脚本并执行,Shell 脚本的创建和执行

Linux 内置了shell程序,几乎所有的用户程序都是依靠shell执行的。前几章节介绍的终端可以理解是Linux 提供的shell

用户界面,虽然没有windows 的用户桌面好看。终端的"ifconfig"就是一个shell 执行的程序。

Shell可以执行编译好的C 语言可执行程序,当然也可以执行各种shell脚本,还有一些其他语言的脚本或者高级语言编译的可执行程序。

bash 脚本默认以.sh文件结尾的,但不绝对是。

开始一门语言的第一个程序肯定是"Hello World!",下面我们来创建个脚本并执行。

a13e52deb7f8c1ea734be25df3c6c429.png

我们使用vim(前面有介绍过vim,可以回去看一下)创建了一个脚本helloworld.sh,默认没有执行权限。看下cat

的脚本内容,介绍下代码的含义:

#!/bin/sh #这句代码没什么实际功能,只是说明这个是bash 脚本,#是注释这行代码的意思。

echo #是bash 脚本的打印命令。下章详细介绍。

执行脚本有两种方式:

1)sh xxx.sh 或者bash xxx.sh,但是这种方式不常用

2)./xxx.sh,为什么要加./来指定脚本的目录,而我们之前执行的ifconfig 不需要指定ifconfig 文件所在目录是哪里?因为linux

系统有个默认的PATH环境变量,标识了可执行程序的目录,这些目录里的程序可以直接默认被系统在任何路径下找到并执行,而我们当前目录是不在PATH

下的,所以不能像ifocnfig 一样。看图:

abe07b627049305c08b9f48e855155a2.png

注意到ifconfig 是在/sbin/下,而/sbin 是PATH环境变量的其中一个目录,所以不需要指定在哪个目录下。

我把helloworld.sh 所在的当前目录加到PATH 变量里:

d84c0d51e1d42beca4648019ff16bebb.png

可以看到成功执行了。

说明一下,./ 是相对路径,也可以用绝对路径执行:

71e1b6339651107c9b736c5d690c2009.png

绝对路径是从根目录到某个目录的全路径。./ 是相对路径(当前目录),../也是相对路径(表示上一级目录),同样

.././../也是相对路径(上级的上级目录)。关于"PATH 环境变量"和"绝对路径/相对路径"这点一定要记住。

我们说.sh 是脚本的后缀,如果不带.sh 呢?

3af803ae5ae5c7f0cefe3b6bacd9b231.png

也是可以执行的。

即使改成.c 也是可以执行的:

b0f6e45672453788e21a9f91d661f9f5.png

所以.sh 只是让我们方便看出这是个bash 脚本,而并没有什么实际意义。

但是,我建议大家还是按照我的helloworld.sh 格式写,方便别人阅读:

4de892c2e338c561c3ffa91787ef9b58.png

非特殊情况,请带上.sh 和 "#!/bin/sh" !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值