导言
编写shell脚本的时候遇到了一些不大明白的命令,同时自己对于非常用命令老是忘掉,干脆直接写一篇文档做一个shell脚本的入门教程
shell脚本对于嵌入式只要做到入门就行了,主要用来自动调用各种程序。
这个系列会分很多篇,基本上收集到相关资料就会出一篇分享一下
语法
选择解释器
脚本基础符号解释
单引号会把引号里的所有元素当成字符串
双引号会把引号之内的变量当成变量,但是其他的元素还是当成普通字符串元素
`` 倒引号:命令替换,在倒引号内部的shell命令首先被执行,其结果输出代替用倒引号括起来的文本。
作为转义符,类似于c
作为续行符,如果一条命令太长,可以在行尾加
一些细节
1 2 3 4 5
| :<<!(感叹号可替换) 注释内容... 注释内容... 注释内容... !
|
1 2
| read -p "please input a number:" num echo "${num}"
|
1 2 3 4 5 6 7 8 9 10
| if [条件1] then #我是注释,如果条件1为真执行第一个 then 后面的 #条件1成立程序 elif [条件2] then #我是注释,如果条件2为真执行第二个 then 后面的 #条件2成立程序 else #条件1和2都不成立程序 fi
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| case 值 in 模式1) #模式1程序 #模式1程序 ... #模式1程序 ;; 模式2) #模式2程序 #模式2程序 ... #模式2程序 ;; esac
|
命令
echo
- echo 带 -e,启用反斜杠转义符
- echo 输出到固定的文件
1
| echo "Test Page"> testpage
|
source
- source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。因为linux所有的操作都会变成文件的格式存在。
- 这就是linux系统薄纱windows的一点,可以在更新后不用重启
1 2 3
| source filename # filename必须是可执行的脚本文件 或者 . filename # 注意“.”号后面还有一个空格
|
脚本开机自启
方法一
修改/etc/rc.d/rc.local
1
| chmod +x /etc/rc.d/rc.local
|
1 2 3
| #!/bin/bash date >> /home/yoghurtcc/output.txt hostname >> /home/yoghurtcc/output.txt
|
1
| echo "/home/yoghurtcc/auto_run_script.sh" > /etc/rc.d/rc.local
|
方法二
利用crontab工具
1
| @reboot /home/yoghurtcc/auto_run_script.sh
|
(未完待续)