1.简介
1)shell脚本就是一些文件,我们将一些需要执行的命令写入到文件中,然后通过shell来执行
2)命令都是在shell终端中输入并执行,登录shell后出现如下提示:
username@hostname$或者username@hostname#,其中$代表普通用户,#代表管理员用户,也就是root用户,root用户是linux系统中权限最高的用户
通常情况下建议使用普通用户进行登录,因为以root用户登录后,如果执行了某些命令,造成了错误,由于权限很高的原因会导致部分错误的无法挽回,
可以使用sudo
2.脚本的两种运行方式:
1)将脚本文件作为bash命令的参数,假设test1.sh就在当前目录下
$ bash test1.sh 或者 sh test1.sh
$ bash /home/test1/test1.sh #bash加上脚本的绝对路径
2)为脚本加上可执行权限,将其变为可执行文件
$ chmod u+x test1.sh
$ ./test1.sh 或者
$ /home/rhino/test1.sh
【备注】以上第二种脚本执行方式,实际上内核会读取脚本文件test1.sh的解释器为#! /bin/bash,在内部实际上脚本的执行过程如下
/bin/bash /home/rhino/test1.sh,所以实际上脚本最终的执行方式还是作为了bash的参数来执行
3.shell登录
1)shell登录开始后,首先会执行用户主目录下~/.bashrc文件和~/.bash_profile文件来设置环境变量等其他设置,并且主目录下有一个文件.bash_history来记录
该用户执行过的历史命令
4.shell下的两种终端打印
1)echo
echo hello world 或者echo ‘hello world’ 或者 echo “hello world”三种方式打印:不加引号,单引号,双引号
注意:echo 打印默认在命令后加上了换行符。三种打印方式各有利弊,不加引号的打印无法打印出分号;因为在shell中分号;默认是命令定界符
eccho hello ;hello会报错,hello not command
2)print打印,和C语言中的print打印一致,默认不加换行符
print格式化打印,如
rintf "%-4d %-5s %3.2f\n" 12 sad 23.235 #减号-代表左对齐,如果不加减号默认右对齐,4d代表整数占用4个字符的位置,如果不够以空格补全,s代表字符串,f代表浮点型
3.2f代表保留小数点后两位,采用四舍五入法则,后面需要格式化的各个字符之间以空格进行分割
格式化打印问题一:
如果我想将1,2,3,4,5.....10作为01,02,03,04,05...10来输出,该怎么做呢?
解决方法:print “%02d\n” ,其中2代表固定2个字符的位置,0代表不足两位以0补全
#!/bin/bash
for i in `seq 10`
do
index=`printf '%02d' $i`
echo $index
done