shell基础-脚本执行方式-helloworld
1. echo输出命令
-
命令:
echo [选项] [输出内容]
选项:-e 支持反斜线控制的字符转换
控制字符 | 作用 |
---|---|
\ | 输出\本身 |
\a | 输出警告音 |
\b | 退格键,也是向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符,也就是tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数 |
\xhh | 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 |
举个栗子:
-
命令:
echo -e "ab\bc"
作用: 删除左侧字符 -
命令:
echo -e "a\tb\tc\nd\te\tf"
作用: 制表符与换行符 -
命令:
echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
作用: 按照十六进制ASCII码也同样可以输出 -
命令:
echo -e "**\e[1;** 31m abcd **\e[0m**"
作用: 输出颜色
代码 | 颜色 |
---|---|
30m | 黑色 |
31m | 红色 |
32m | 绿色 |
33m | 黄色 |
34m | 蓝色 |
35m | 洋红 |
36m | 青色 |
37m | 白色 |
开始实验:
2. 第一个脚本
命令: vi hello.sh
作用: 创建一个脚本
注意: (1) Linux是不区分扩展名的,如果写成.sh,作用是告诉系统我写的bash脚本,如果用的不是vi,用的vim编译器,尝试用颜色来帮助我们写代码。如果非点不写扩展名也是可以的。
(2) 在Linux配置文件中,如果是用#的或相当于是注释,但是#!/bin/Bash不是注释,是一个标称,标称以下写的是shell脚本。
开始实验:
-
(1) 写一个脚本,输出hello,world
小提示: (1) Linux当中所有的执行文件,不管是我们写的shell脚本,还是二进制的执行命令,要想运行都必须使用绝对路径,或者相对路径,让系统找着,才可以执行。
但是ls也是可执行程序,那这个命令为什莫不敲绝对路径就可以直接执行??? 这个跟环境变量有关系。
(2)bash hello.sh
是通过这个shell来解释这个脚本, 只要写的语句是标准的,是完整的,连执行权限都不用给,就可以执行,但是习惯使用第一种方法。
3. 脚本执行
-
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
-
通过bash调用执行脚本
bash hello.sh
开始实验:
4.格式问题的解决
-
问题描述: 就是我们从Windows中导入到Linux中的脚本文件会出现不能执行。有可能是格式的问题。在Linux中回车符识别为 $ ,
cat –A 文件名
是查询文件中所有的文件内容的包括隐藏字符,有的时候回车符会出现^M$,原因:这个脚本程序是在windows当中编辑成功的,而不是在Linux当中,在Windows当中的回车符和Linux当中的回车符不一样,因为回车符的不同所以在Linux中执行在Windows当中编写的程序之后就会发生格式不匹配。 -
解决方法: 从Windows格式转换成Linux格式,这种转换不需手工来进行,可以使用
dos2unix 文件名
,这个命令的含义是从dos到unix从windows格式Linux格式,如果没有这个这个软件可以手工yum -y install dos2unix
安装上即。同理: unix2dos 从Linux格式转化window。