1. 输出命令echo
命令格式:echo [选项] [输出的内容]
选项:
-e:支持反斜线控制的字符转换,也就是支持转义字符。
下面说一下Linux中的转义字符的作用。
转义字符 | 作用 |
---|---|
\\ | 代表\本身。 |
\a | 警告音。 |
\b | 退格键,也就是向左退格删除一个字符。 |
\c | 取消行尾的换行符。和“-n”选项一致。 |
\e | ESCAPE键。 |
\f | 翻页。 |
\n | 换行符。 |
\r | 回车键。 |
\t | 水平制表符,也就是tab键。 |
\v | 垂直制表符。 |
\0nnn | 代表八进制的ASCII码指向的字符,nnn是三位八进制数。 |
\xhh | 代表十六进制的ASCII码指向的字符,hh是两位十六进制数。 |
示例:
[root@localhost ~]# echo hello
hello
[root@localhost ~]# echo hello world
hello world
[root@localhost ~]# echo "hello world"
hello world
[root@localhost ~]# echo "hello world!"
-bash: !": event not found
[root@localhost ~]# echo 'hello world!'
hello world!
[root@localhost ~]# echo hello world!
hello world!
[root@localhost ~]# echo "ab\bc"
ab\bc
[root@localhost ~]# echo -e "ab\bc"
ac
[root@localhost ~]# echo -e 'ab\bc'
ac
[root@localhost ~]# echo -e ab\bc
abbc
可以用双引号或单引号,将输出的内容括起来。如果输出内容中有英文感叹号,不能用双引号(否则会报错),要用只能用单引号,要么就不用引号。
要想让Linux识别转义字符,必须用引号括起来。
输出带有颜色的字符:
- 以 \e[; 或 \e[1; 开头,如果用 \e[1; ,颜色会浅一些
- 以 \e[0m 结尾
- 中间是颜色标识符(如31m)和要输出的内容(如ABC)
颜色标识符主要有8种:
30m代表黑色;31m代表红色;32m代表绿色;33m代表黄色;
34m代表蓝色;35m代表洋红;36m代表青色;37m代表白色。
[root@localhost ~]# echo -e "\e[;31mABC\e[0m"
ABC
上面输出的ABC字符其实都是红色的。
2. 编写第一个shell脚本
脚本文件名最好以 .sh 结尾,便于Linux系统和自己识别。
vi hello.sh
脚本内容如下:
#!/bin/bash
#The first program
#Author: admin
echo -e 'hello world!'
说明: 脚本文件的内容,必须以#!/bin/bash开头,标识这个文件是bash文件。第一行行首的#,不表示注释。其他行行首的#,表示注释。
3. 执行脚本
执行脚本的方法有两种:
- 先给脚本文件赋予执行权限,再来直接执行
- 通过bash调用脚本文件
第一种方法的操作如下:
chmod 755 hello.sh
给脚本hello.sh赋予755的权限
./hello.sh
执行当前目录下的hello.sh脚本(相对路径和绝对路径都可,但必须带有目录,不可以直接写文件名)
一般来说,Linux中的可执行文件都必须带有路径才能执行。
第二种方法的操作如下:
bash hello.sh
通过bash调用bashhello.sh(相对路径和绝对路径都可,如果是当前目录下的脚本,可以省去当前目录./)
推荐使用第一种方法来执行shell脚本文件。
4. 脚本中的隐藏字符
在Linux中,用文本编辑器(如vi)编写脚本文件时,如果有回车,回车符是$(它是隐藏的,一般不容易被发现)。在Linux中执行该脚本时,Linux也能够正确识别该隐藏字符,故而没有问题。
但是,如果你的脚本文件是用Windows的编辑器(如记事本)编写的,隐藏的回车符就是^M$,Linux是无法正确识别该隐藏字符的。这样就会导致脚本文件在Linux中无法正确执行。
查看脚本文件中的隐藏字符:
cat -A hello.sh
查看hello.sh中的所有内容,包括隐藏字符,主要是指回车符$。
结果如下:
[root@localhost ~]# cat -A hello.sh
#!/bin/bash$
#The first program$
#Author: admin$
echo -e 'hello world!'$
在Linux的编辑器中,回车符是$。而在Windows的编辑器中,回车符是^M$。
如果脚本文件是在Windows当中编写的,直接拿到Linux中使用,就会报错。为此,可以使用通过如下命令解决。
dos2unix hello.sh
将文件hello.sh由Windows格式转换为Linux格式。
不过,大多数Linux系统并没有安装dos2unix命令。可使用yum快速安装。
yum -y install dos2unix
通过yum来安装dos2unix(前提是你的yum可用)
dos2unix命令的作用:把文件中的所有字符(包括隐藏字符)由Windows格式转换为Linux格式。
unix2dos命令的作用:把文件中的所有字符(包括隐藏字符)由Linux格式转换为Windows格式。