linux shell 编程

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

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值