Linux Shell 脚本攻略阅读笔记第1章 小试牛刀
一、简介
1.Bash(Bourne Again Shell),目前大多数GNU/Linux系统默认的shell环境。
命令都是在shell终端中输入并执行。打开终端后,提示符的形式:username@hostname$ 或 root@hostname # ($表示普通用户,#表示管理员用户root)
2.shell脚本是一个以#!(shebang)起始的文本文件,如下: #!/bin/bash
shebang是一个文本行,其中#!位于解释器路径之前。/bin/bash是Bash的解释器命令路径。
3.两种运行脚本的方式。
一种是将脚本作为bash到命令行参数
buxizhizhou@ubuntu:~/lssc/chpt1$ bash test_script.sh hello,world另一种是授予脚本执行权限,将其变为可执行文件。chmod a+x script.sh
buxizhizhou@ubuntu:~/lssc/chpt1$ chmod a+x test_script.sh buxizhizhou@ubuntu:~/lssc/chpt1$ ./test_script.sh hello,world
内核会读取脚本的首行,注意到shebang为#! /bin/bash。它识别出/bin/bash,并在内部像这样执行该脚本:$ /bin/bash test_script.sh
其中,test_script.sh文件内容如下:#!/bin/bash echo hello,world4.~表示主目录,通常是/home/user,其中user是用户名;若是root用户,则为/root。
5.登录shell是登录主机后获得的那个shell。如果是登录图形界面环境如GNOME、KDE后打开了一个shell,就不是登录shell。
6.Bash中,每个命令或命令序列是以分号或换行符来分隔。#指明注释的开始,延续到行尾。如 $ cmd1 ; cmd2 等同于 $ cmd1 $ cmd2
二、终端打印
终端是交互式工具,可以通过它与shell环境进行交互。
1.echo.默认在每次调用后添加一个换行符。-n 忽略结尾换行符。
2.echo的三种形式打印:直接打印、单引号、双引号
buxizhizhou@ubuntu:~/lssc/chpt1$ echo "Welcome to Bash" Welcome to Bash buxizhizhou@ubuntu:~/lssc/chpt1$ echo Welcome to Bash Welcome to Bash buxizhizhou@ubuntu:~/lssc/chpt1$ echo 'Welcome to Bash' Welcome to Bash三种方法的副作用:
直接打印:不能显示文本中的分号——分号在Bash中是命令定界符。echo hello;hello被认为是两个命令echo hello和hello。
单引号:变量替换在单引号中无效。
双引号:不能打印叹号!。或将其转义,\!。确切地说,叹号在末尾、或者叹号后没有空格,则不能正常打印。如下面测试,可以看到,叹号后面有空格时还是可以打印的。
buxizhizhou@ubuntu:~/lssc/chpt1$ echo "Hello world !" bash: !": event not found buxizhizhou@ubuntu:~/lssc/chpt1$ echo "cannot include exclamation - ! within" cannot include exclamation - ! within buxizhizhou@ubuntu:~/lssc/chpt1$ echo "c!c" bash: !c": event not found buxizhizhou@ubuntu:~/lssc/chpt1$ echo "c ! c" c ! c buxizhizhou@ubuntu:~/lssc/chpt1$ echo "c! c" c! c buxizhizhou@ubuntu:~/lssc/chpt1$ echo "c !c" bash: !c": event not found
3.printf.无自动换行符。参数类似于C语言,参数以空格分隔。如下:
#!/bin/bash #文件名:printf.sh printf "%-5s %-10s %-4s\n" No Name Mark printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456 printf "%-5s %-10s %-4.2f\n" 2 James 90.9989 printf "%-5s %-10s %-4.2f\n" 3 Jeff 77.564运行显示:
buxizhizhou@ubuntu:~/lssc/chpt1$ bash printf.sh No Name Mark 1 Sarath 80.35 2 James 91.00 3 Jeff 77.56
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。