echo 命令:
用于在屏幕上显示消息,例如:
#echo "This is an example of the echo command!"
#符号用于在shell脚本中包含注释语句
变量:
创建变量:variable name=value linux中的所有变量都被当做字符串。
引用变量:variable1=$variable2
读入值给变量:#read variable_name
局部变量:当引用shell时,只有创建它的shell能够知道变量的存在。
全局变量:#export variable 所有的shell共享全局变量,例如,当用户从一个shell切换到另一个shell时,之前定义的局部变量失
效,而全局变量则可以继续使用。
环境变量:
HOME变量--linux系统中的每个用户都有一个相关的称作HOME的目录,当一个用户登录后,进入相应的HOME的目录。例
如,#echo $HOME
PATH变量--包含一列用冒号定界的目录的路径名字,便于可执行文件的搜索。
PS1(prompt string 1)变量--包含了shell提示符,$符号。例如,$PS1="HELLO>" 提示符就会变成 HELLO>
PS2变量--是为第二个提示符设置值的环境变量
LOGNAME变量--用户的注册名字,例如,#echo $LOGNAME
SHLVL变量--该变量包含你当前工作的shell level
expr命令:
用于求值算数表达式。该命令的输出被发送到标准输出,例如,#expr 4 + 5 将在屏幕上显示 9 ,注意‘+’与数字之间的空格。
算数展开:$((expression))可以计算算数表达式的值,expression表示一个算数表达式。
test和[]命令:求值表达式,返回true或false。
exit命令:用于终止shell脚本的执行并返回#提示符下。
数值测试:
-eq:等于
-ne:不等于
-gt:大于
-ge:大于等于
-lt:小于
-le:小于等于
字符串测试:
=:等于
!=:不等于
-z字符串:字符串长度为零
-n字符串:字符串长度不为零
文件测试:
-e文件名:文件存在
-r文件名:文件存在且可读
-w文件名:文件存在且可写
-x文件名:文件存在且可执行
-s文件名:文件存在且至少有一个字符
-d文件名:文件存在且为目录
-f文件名:文件存在且为普通文件
-c文件名:文件存在且为字符型特殊文件
-b文件名:文件存在且为块特殊文件
-a:并且
-o:或者
!:非
控制进程的执行:
请求后台处理:#wc tempfile & ,“&”符号用于请求后台进程。
查看后台进程:ps(process status)命令为每个当前活动的每个进程产生一行入口。
终止后台进程:#kill 278 , "278"表示进程号。
查看完成一个命令所花的时间:#time find /etc -name "passwd" 2> /dev/null
管道编程:
"|"是管道的字符,它指示shell,‘|’前面的命令的输出作为‘|’之后命令的输入发送。例如,ls -l | more
基本的输入与输出示例:
#!/bin/sh
#ShowHello.sh
#To show hello to somebody
echo -n "Enter Your Name:"
read NAME
echo "Hello,$NAME!"
if条件判断示例:
#!/bin/sh
#iftest
#to show the method of if
echo -n "Enter the first integer:"
read FIRST
echo -n "Enter the second integer:"
read SECOND
if [ $FIRST -gt $SECOND ] ; then
echo "$FIRST is greater than $SECOND."
elif [ $FIRST -lt $SECOND ] ; then
echo "$FIRST is less than $SECOND."
else
echo "$FIRST is equal to $SECOND."
fi
注意:if的[]中的空格不能省略。
case条件判断示例:
#CaseTset
#to test the method of case
USER=`whoami`
case $USER in
root) echo "You can do all the operations."
;;
piaojun) echo "You can only do some operations."
;;
*) echo "Sorry,you can't do anything."
;;
esac
while循环示例:
#whileTest
#to test the method of while
COUNTER=0
while [ $COUNTER -lt 10 ]
do
echo $COUNTER
sleep 1
COUNTER=`expr $COUNTER + 1`
done
until循环示例:
#UntilTest
#to test the method of until
IS_ROOT=`who|grep root`
until [ "IS_ROOT" ]
do
IS_ROOT=`who|grep root`
sleep 5
done
echo "Watch it,root in!"
for循环示例:
#ForTest
#to test the method of for
COUNTER=0
for FILES in *
do
COUNTER=`expr $COUNTER + 1`
done
echo "There are $COUNTER files in `pwd`"
函数示例:
#FunTest
#to test the function
DATE=`date`
ShowDate()
{
echo "Hi,today is $DATE!"
}
ShowDate