## shell脚本属性
首先可以查看一下shell脚本的属性,亮绿色带星号为可执行shell脚本。
```bash
ll test.sh
-rwxrwxr-x 1 jilan jilan 268 Nov 2 03:04 test.sh*
```
如果在运行shell脚本中不能正常运行,那么就要查看一下shell文件的格式,我们用vim打开文件,在命令行模式中执行:`set ff` 查看文件格式为 `fileformat=dos` 是不能正常运行的,要改为 `fileformat=unix` 才可以正常运行。
```bash
###方法一
vim test.sh
#命令行模式执行 set fileformat=unix
#保存退出
###方法二
#直接执行sed转换命令
sed -i "s/\r//" test.sh
```
## shell执行方式
1、工作目录执行
```bash
./test.sh
```
2、绝对路径执行
```bash
/home/wang/scripts/test.sh
```
3、sh执行
```bash
sh test.sh
#或者
bash test.sh
```
4、shell环境执行
```bash
#shell环境执行,指的是在当前的shell环境中执行,可以使用 . 接脚本 或 source 接脚本
. test.sh
#或者
source test.sh
```
## shell环境
Linux 的 Shell 种类众多,常见的有:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
最常用的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 **#!/bin/sh**,它同样也可以改为 **#!/bin/bash**。**#!** 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。