Linux学习基础——之shell基础——脚本的执行方式
所有的Linux命令都可以在shell中执行
1、echo 输出命令
【root@localhost ~】#echo 【选项】【输出内容】
选项:
-e :支持反斜线控制的字符转换
那什么样的字符加反斜线才能被识别呢?
看如下表格
控制字符 | 作用 |
\\ |
输出 \ 本身 |
\a | 输出警告音 |
\b | 退格键,也就是向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,也就是Tab键 |
\v | 垂直制表符 |
\Onnn | 按照八进制ASCLL码表输出字符。其中0位数字零,nnn是三位八进制数 |
\xhh | 按照十六进制ASCLL码表输出字符。其中hh是两位十六进制数 |
注意:如果要输出的内容中有空格,需要添加“引号”
示例
1):输出hello world! 特别注意,感叹号有特别作用,所以此处如果想输出感叹号,需要使用单引号,
2)示例删除左侧字符:
【root@localhost ~】#echo -e "ab\bc"
3)制表符与换行符
【root@localhost ~】#echo -e "a\tb\tc\nd\te\tf"
解析:a和b b和c 之间插入了制表符,c和d之间插入了换行符
4)#按照十六进制ASCII码也同样可以输出
【root@localhost ~】#echo -e "\x61\t\x63\n\x64\t\x65\tx66"
注:十六进制的ASCII码可以从网上找到相对应的表,即数字和字符的对应表示
5)#输出颜色
【root@localhost ~】#echo -e “\e[1;3]m abcd \e[0m”
注:#30m =黑色,31m=红色,32m=绿色,33m=黄色
#34m=蓝色 ,35m=洋红,36m=青色,37m=白色
会输出红色的abcd
注:\e[1; 表示开启颜色调节输出, \e[0m 表示结束颜色调节输出
2、第一个脚本
【root@localhost sh】# vi hello.sh
#!/bin/Bash
#The first program
#Author:xiaoxiaozhou (E-mail:2333@qq.com)
echo -e "Mr.xiaoxiaozhou is the most honest man in his shcool'
注意:如上#!/bin/Bash 属于例外,不是注释,而是标识,
除此之外,在Linux中一般以#开头的是注释;该句不可省,表示如下是shell脚本
3、脚本执行的方式:
步骤一:要想运行,必须赋予相应执行权限;
步骤二:所有命令或者脚本的执行,实质都是需要使用绝对路径的方式
(没有明显使用绝对路径的,一定用了其他方式,比如配置环境变量,但实质没变)
》赋予执行权限,直接运行
>>chmod 755 hello.sh
>>./hello.sh
》通过Bash调用执行脚本
>>bash hello.sh
4、如果运行一个陌生的 .sh的脚本,运行失败,怎么办?
步骤一、根据提示确认不可执行的原因,如果是没有权限,赋予相应权限即可;
如果是其他,比如提示找不到文件,先确认路径是否正确,是否有通过实质的绝对路径的方式进行了访问;
如果路径和权限都对,但是提示如下
通过提示可以看到,M 相关错误这其实是说脚本文件中出错了,解决步骤如下;
步骤二、权限和路径错误都好解决,如果是上方末尾问题,那其实是因为该脚本文件编辑环境其实是在Windows环境下编辑好,拷贝到当前Linux环境下进行运行的。因为Linux脚本中,正常的回车符结尾是$结尾的,但是在Windows中,编辑的 回车符,结尾是以M$结尾,所以移到Linux环境下,M不被识别
那如何验证是否同上所说呢?
通过cat -A [脚本文件路径] -A选项可以把文件中的隐藏字符都查出来,比如这里的M$
解决原理:把M$换成$即可;
解决方法:有两个,
方法一:手动更换;
方法二:使用命令dos2unix [要转换的文件名] 转换
转换完,即可正常运行。
扩展:相反,在Linux中编辑的.sh文件,想在Windows中运行,只要使用unix2dos 命令即可
如果这两个命令没装,可以安装一下即可。
迪浮科技课程服务承诺:
1、免费重修:
学员缺课或者学校效果不理想,可以免费重修,确保课程内容完全掌握。重修过程中绝对不收取任何费用!
2、单独辅导:
如果学生在学习过程中,因各种原因无法跟班级进度同步,公司安排专家讲师一对一辅导,手把手带你成为IT精英!
3、自由实验:
清默网络有先进完善的实验中心,全天开放,实验机时不限,不断提高动手操作能力!
4、考试辅导:
学员考试前先通过清默内部模拟考试,技术确定达到考试要求并提供考前辅导及考试技巧讲解。
如果模拟考试未能通过,专家讲师会给予建议和辅导,合格后再参加正式考试,确保学员能高分通过认证考试。
5、企业实战项目:
即通过先进的设备完全搭建和企业项目完全一致的网络环境,把学习内容融会贯通并在实际项目中加以应用,以达到学员迅速掌握实际技能并弥补经验不足的目的,让学员的学习内容不再纸上谈兵,理论与实战完全吻合
咨询老师:郭老师
咨询电话:15056089769
咨询Q Q :1027831018