Bash入门
书籍(一本深入学习 shell 脚本艺术的书籍)
http://www.tldp.org/LDP/abs/html/
关于#!/bin/bash(不可省略)
在 BASH 中 第一行的 "#!" 及后面的 /bin/bash
就表明该文件是一个 BASH 程序,需要由 /bin 目录下的 bash 程序来解释执行。BASH 这个程序一般是存放在 /bin 目录下,如果你的 Linux 系统比较特别,bash 也有可能被存放在 /sbin 、/usr/local/bin 、/usr/bin 、/usr/sbin 或 /usr/local/sbin 这样的目录下;如果还找不到,你可以用 locate bash
,find / -name bash 2>/dev/null
或 whereis bash
这三个命令找出 bash 所在的位置;如果仍然找不到,那你可能需要自己动手安装一个 BASH 软件包了。
运行Bash脚本的方式
# 使用shell来执行
$ sh hello.sh
#
$ bash hello.sh
使用.来执行
$ . ./hello.sh
使用source来执行
$ source hello.sh
还可以赋予脚本所有者执行权限,允许该用户执行该脚本
$ chmod u+rx hello.sh
$ ./hello.sh
【实例】清理日志文件的脚本
#!/bin/bash
# 初始化一个变量
LOG_DIR=/var/log
cd $LOG_DIR
cat /dev/null > wtmp
echo "Logs cleaned up."
exit
【要点】
1.要给执行脚本赋予权限(管理员权限)
sudo chmod +x cleanlogs.sh
sudo ./cleanlogs.sh
2. /dev/null 可以理解为一个黑洞,里面是空的,重定向到 /var/log/wtmp 文件后,就清空了 wtmp 文件的内容