linux编程笔记--shell脚本

去年学习linux时做过的部分笔记,浅显易懂,比较简单

//////////////////////////////////////////////
shell脚本
与windows 批处理相似 功能更加强大 已经是一门编程语言了

为了使用bash shell来执行脚本magic,其命令是:
$bash magic 或 $ ./magic
$为终端提示符(普通用户)
shell可以起任何名字,为了规范,使用 .sh后缀

echo命令

用于在屏幕上显示信息
例如: $echo "This is an example"
# 注释符号
linux中所有的变量都被挡作字符串

读入值给变量$read fname 屏幕会暂停等待用户输入内容
export命令指出的才是shell全局变量 默认的是局部变量

显示用户的home目录 echo $HOME(大小写区别)
PATH变量用冒号定界而不是分号
echo $PATH 显示path

修改path  vi /etc/profile
例如: 增加当前路径 在文件中添加
PATH=$PATH:.
export PATH

改命令提示符 $PS1="HELLO>"

LOGNAME 显示登陆用户名
SHLVL   显示当前工作的shell level
SHELL   存储了用户缺省的shell
env     查看所有的已移出的环境变量表和他们各自的值

$expr 4 + 5               将在屏幕上显示9 (+前后都必须有空格)
echo "the date is `date`" 显示日期

echo $((expression))         计算表达式的值

例1:
# the first shell
echo "please enter your name :"
read fname
echo ${fname}
s=xxx
echo $s
增加执行权限 chmod a+x first.sh

例2:
#callcenter.sh
echo "please enter totle number:"
read totlenumber
echo "please enter resolve number:"
read resnumber
echo $((totlenumber-resnumber))

增加执行权限 chmod a+x callcenter.sh

例3:if程序
#Avg.sh
echo "please enter score:"
read score

if [ $score -lt 80  ]             #小于
then
     echo "wrong!!!"
elif [ $score -ge 80 -a $score -lt 90  ] #大于并且 
then
     echo "Good!!!"
else
     echo "very good!!!"
fi
增加执行权限 chmod a+x Avg.sh

例4:菜单程序
#CaseExample.sh
echo "Services:"
echo -n "1)ls"
echo -n "2)ls -l"
echo -n "3)Exit"
echo "please enter choice[1-3]"
read choice
case $choice in
    1) ls;;
    2) ls -l;;
    3) exit;;
    *) echo  "enter wrong";;
esac
增加执行权限 chmod a+x CaseExample.sh

例5:while循环
#WhileExample.sh
ecode=1000
while [ $ecode -le 1002  ]
do
    echo "please enter employee info ecode=$ecode"
    echo "Enter name:"
    read name
    echo "Enter mail:"
    read mail
  
    echo "Name:$name Mail:$mail">>employee.dat
    ((ecode=$ecode+1))
done
增加执行权限 chmod a+x WhileExample.sh


查看运行的线程 ps
将查找passwd文件变成后台进程   find / -name passwd &   加了&
杀死线程  kill (PID号码)
查看执行时间有错误的话重定向 time find /etc -name passwd 2>/dev/null
利用管道符号分页查看 ls -l /dev |more         
/dev目录下的文件比较多 容易理解管道

你可能感兴趣的:(多线程,编程,linux,脚本,bash)