一个Bash脚本的例子:mysystem.sh
千万不要多打了或少打了" 这是新手常犯的错误~
mysystem.sh 脚本执行了一些熟悉的命令,(date, w, uname, uptime) 来显示你和你机器的信息。
tom:~> cat -n mysystem.sh
1 #!/bin/bash
2 clear
3 echo "This is information provided by mysystem.sh. Program starts now."
4
5 echo "Hello, $USER"
6 echo
7
8 echo "Today's date is `date`, this is week `date +"%V"`."
9 echo
10
11 echo "These users are currently connected:"
12 w | cut -d " " -f 1 - | grep -v USER | sort -u
13 echo
14
15 echo "This is `uname -s` running on a `uname -m` processor."
16 echo
17
18 echo "This is the uptime information:"
19 uptime
20 echo
21
22 echo "That's all folks!"
脚本总是以相同的2个字符开始,“#!”。之后,shell会执行定义在第一行之后的命令。脚本在第1行清除屏幕内容。第2行打印一条语句,通知用户将要发生的事情。第5行问候用户。第6,9,13,16和20行是为了按顺序输出显示。第8行打印了当前的日期和周数。第11行市又一个提示信息,和第3,8,22行一样。第12行格式化 w 的输出;第15行显示了操作系统和CPU信息。第19行给出了uptime和load信息。
echo 和 printf 都是Bash内建命令。第一个总是以状态0退出,且简单地把参数在标准输出打印出来,而后者允许定义一个格式化字符串且在失败后返回一个非零的退出状态。
这是一个相同的使用 printf 内建命令的脚本:
tom:~> cat mysystem.sh
#!/bin/bash
clear
printf "This is information provided by mysystem.sh. Program starts now."
printf "Hello, $USER.\n\n"
printf "Today's date is `date`, this is week `date +"%V"`.\n\n"
printf "These users are currently connected:\n"
w | cut -d " " -f 1 - | grep -v USER | sort -u
printf "\n"
printf "This is `uname -s` running on a `uname -m` processor.\n\n"
printf "This is the uptime information:\n"
uptime
printf "\n"
printf "That's all folks!\n"