shell脚本的执行
1、当脚本文件本身没有可执行权限(文件x位为-号位)
bash script-name或 sh script-name
2、路径+脚本名
path/script-name
当前目录下
./script-name
3、在当前shell脚本中加载另一个shell脚本
source script-name 或
. script-name (点号与脚本名之间有空格,点号代表包含)
shell变量
1、变量的定义
格式:变量名=值
变量名=变量
变量名要求:字母开头,由字母、数字、下划线组成。
2、位置变量:通过命令行给程序传递执行参数。
./script-name 参数1 参数2 参数3
$n 取当前执行shell脚本的第n个参数值,n=1~9,如果n>9,用大括号括起来,如${10} ${10}就等于shell脚本第10个参数值。
$@ 这个程序中所有参数。(这是将参数传递给其他程序的最佳方法,因为它会保留所有内嵌在每个参数里的空白)。
3、Bash预定义变量
$? 获取上一个执行命令的返回值(0为成功,非零为执行命令未成功)。
$$ 获取当前shell脚本的进程号(PID)。
$# 获取当前shell脚本命令行中参数的总个数。
$0 (n=零时)取脚本路径和名称。
$* 所有位置参数的内容。
if条件语句
if <条件语句>
then
#指令
fi
把shell脚本改选成标准rpm脚本:
#!/bin/bash
#script-name
#chkconfig:2345 90 20
#description: script-name server daemon
通过service命令脚本进行开启和关闭:
linux的快捷目录:/etc/rc.d/init.d
service script-name start|stop|restart
通过chkconfig命令把shell脚本设置开机自启:
查看:chkonfig --list script-name
设置:chkconfig script-name on
chkconfig script-name off
函数定义
function menu(){
echo 'helloward,bash!';
}
shell脚本菜单界面编写
一、cat命令的heredoc的使用方法
cat<<eof
#$name输出内容
eof
二、字符输出,颜色控制
echo -e "\033[30;47m test \033[0m"
三、while死循环
while true
do
#执行代码
done
shell脚本调试
-n选项只做语法检查,而不执行脚本。
sh -n script_name.sh
跟踪调试
sh -x script_name.sh
进入调试模式后,Shell依次执行读入的语句,产生的输出中有的带加号,有的不带,带加号表示该条语句是Shell执行的。不带加号表示该语句是Shell产生的输出。
在调试过程中可以按Ctrl + Z中断调试,观察结果,然后再按fg键继续调试即可。