linux脚本学习
进入当前脚本所在目录(对于软链接不行)
curr_dir=$(cd "$(dirname "$0")"; pwd)
cd $curr_dir
for循环:
for (( i = 1; $i <= 10; i++ ));do
echo $i
sleep 1
done
脚本暂停
bash -c 'read -n1 -p "Press any key to continue..." '
显示脚本的命令:(默认是off)
set -v 显示命令
set +v 关闭显示命令的选项
读取配置文件:
假设有个text.txt内容如下:
test=2 #这是一个测试.
$ vi text.sh
#! /bin/sh value=4 value=$(cat test.txt | grep test= | head -1 | awk -F '=' '{print $2}' | awk -F '#' '{print $1}') echo ${value}
$(xx)是取xx命令的返回值. ${xx}是取xx变量.
printf "xx\n\tyy\n" 比echo好用,可以自己控制换行
echo "xx" > log.txt 写到文本
echo "xx2" >> log.txt 追加到文本尾
定制开机脚本,开机命令丢到哪儿:
ls -l /etc/rc{3,5}.d/*local*
看指向哪个rc.local。(比如指向/etc/init.d/rc.local)这个指向的rc.local文件就是可以扔开机脚本命令的文件。
然后打开/etc/init.d/rc.local看,调用了/etc/rc.local文件。
所以,可丢开机脚本的两个文件分别是(mint17):
/etc/rc.local
/etc/init.d/rc.local
最后:
开机脚本推荐放到/etc/rc.local里,重启生效(注销无效),脚本命令必须都用绝对路径(因为系统环境变量貌似还没好,而这个时候,是su权限).
linux脚本编程(shell)简介:http://blog.csdn.net/compiler_hdz/article/details/575113 (写的很完备了,不过是针对bash得)
Dash与Bash的语法区别:http://www.igigo.net/archives/169
linux shell逻辑运算符、逻辑表达式详解:http://www.cnblogs.com/chengmo/archive/2010/10/01/1839942.html
linux awk 命令说明:http://blog.csdn.net/tianlesoftware/article/details/6278273