[quote]
第一:用vi编辑shell命令
#!/bin/sh
#comments
Your commands go here
编辑完毕,将脚本存盘为filename.sh,执行脚本的时候,要先将脚本文件的属性改为可执行的:chmod +x filename.sh
执行脚本的方式:./filename.sh
例如:打印helloworld
#!/bin/sh
#print hello world in the console window
a = "hello world"
echo $a
第二:一些基本语法
echo "Hi, $as"就不会输出“Hi, hello worlds”,而是输出“Hi,”。这是因为Shell把$as当成一个变量,而$as未被赋值,其值为空。正确的方法是:echo "Hi, ${a}s"
if语句:if …; then
…
elif …; then
…
else
…
fi
[ -f "$file" ] 判断$file是否是一个文件
[ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于
[ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性
[ -n "$a" ] 判断变量$a是否有值,测试空串用-z
[ "$a" = "$b" ] 判断$a和$b的取值是否相等
[ cond1 -a cond2 ] 判断cond1和cond2是否同时成立,-o表示cond1和cond2有一成立
例子:if [ $# -lt 3 ]; then
if [ -f "$file" ]; then
if [ -f "$newfile" ]; then
循环语句:
while [ cond1 ] && { || } [ cond2 ] …; do
…
done
for var in …; do
…
done
for (( cond1; cond2; cond3 )) do
…
done
until [ cond1 ] && { || } [ cond2 ] …; do
…
done
例子:20 # $* contains now all the files:
21 for file in $*; do
case语句:
while getopts vc: OPTION
do
case $OPTION in
c) COPIES=$OPTARG
ehco "$COPIES";;
v) echo "suyang";;
\?) exit 1;;
esac
done
上面的getopts类似于C语言提供的函数getopts,在Shell Script中,getopts经常和while语句联合起来使用。getopts的语法如下:
getopts option_string variable
第三,调试:
我们也可以在Shell下调试Shell Script脚本,当然最简单的方法就是用echo输出查看变量取值了。Bash也提供了真正的调试方法,就是执行脚本的时候用-x参数。
sh ?x filename.sh
这会执行脚本并显示脚本中所有变量的取值,也可以使用参数-n,它并不执行脚本,只是返回所有的语法错误。
[/quote]
第一:用vi编辑shell命令
#!/bin/sh
#comments
Your commands go here
编辑完毕,将脚本存盘为filename.sh,执行脚本的时候,要先将脚本文件的属性改为可执行的:chmod +x filename.sh
执行脚本的方式:./filename.sh
例如:打印helloworld
#!/bin/sh
#print hello world in the console window
a = "hello world"
echo $a
第二:一些基本语法
echo "Hi, $as"就不会输出“Hi, hello worlds”,而是输出“Hi,”。这是因为Shell把$as当成一个变量,而$as未被赋值,其值为空。正确的方法是:echo "Hi, ${a}s"
if语句:if …; then
…
elif …; then
…
else
…
fi
[ -f "$file" ] 判断$file是否是一个文件
[ $a -lt 3 ] 判断$a的值是否小于3,同样-gt和-le分别表示大于或小于等于
[ -x "$file" ] 判断$file是否存在且有可执行权限,同样-r测试文件可读性
[ -n "$a" ] 判断变量$a是否有值,测试空串用-z
[ "$a" = "$b" ] 判断$a和$b的取值是否相等
[ cond1 -a cond2 ] 判断cond1和cond2是否同时成立,-o表示cond1和cond2有一成立
例子:if [ $# -lt 3 ]; then
if [ -f "$file" ]; then
if [ -f "$newfile" ]; then
循环语句:
while [ cond1 ] && { || } [ cond2 ] …; do
…
done
for var in …; do
…
done
for (( cond1; cond2; cond3 )) do
…
done
until [ cond1 ] && { || } [ cond2 ] …; do
…
done
例子:20 # $* contains now all the files:
21 for file in $*; do
case语句:
while getopts vc: OPTION
do
case $OPTION in
c) COPIES=$OPTARG
ehco "$COPIES";;
v) echo "suyang";;
\?) exit 1;;
esac
done
上面的getopts类似于C语言提供的函数getopts,在Shell Script中,getopts经常和while语句联合起来使用。getopts的语法如下:
getopts option_string variable
第三,调试:
我们也可以在Shell下调试Shell Script脚本,当然最简单的方法就是用echo输出查看变量取值了。Bash也提供了真正的调试方法,就是执行脚本的时候用-x参数。
sh ?x filename.sh
这会执行脚本并显示脚本中所有变量的取值,也可以使用参数-n,它并不执行脚本,只是返回所有的语法错误。
[/quote]