脚本的后缀还是写 .sh 虽然不是必须,但一眼看见易于知晓是脚本
 shell简单的说就是一个命令解释器,用于用户和linux内核的沟通。
shell中所执行的命令相当于fork出的子进程一样。
建立脚本。
#!/bin/bash    符号#!用来告诉系统它后面的参数是用来执行该文件的程序bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本
Xxxx //脚本内容
chmod 777 file之后就可以执行了
1.基础
 
  #                //shell脚本注释符号
二:变量
1.变量种类:
linux下变量类型只有两种
数字型  和字符串型
 
2.声明变量
declare varname
声明一个局部变量varname,也可以一次声明多个同类型的变量
declare var1 var2 var3
仅创建变量的程序能使用的变量是时局部变量
 
export varname2
保留字export使得变量可由环境存取。即这个变量可以和系统中的其他程序共享。
????这里不会
 
3.变量赋值,引用变量时前面要加" $ "
将数值赋给变量,可以不声明变量直接赋值如
let var=1000
*注意:等号两端不能有空格
let后面不加&号???待
 
比如 i++ : 
delcare i=1
let i=”$i+1"
将字符串赋给变量
必须先声明变量,且赋值在同一条语句,赋的值必须用双引号引起
declarevar="100-100-100"
echo $var
HOME="/home"                //注意赋值不要有空格
HOME_LIST=$(ls /home) //把命令的执行结果赋值给变量
  ehco $HOME                  //$ 符号是获得变量HOME的值
系统变量:
  $0 这个程序的执行名字
  $n  这个程序的第n个参数值,9
  $*  这个程序的所有参数
  $# 这个程序的参数个数
  $$ 这个程序的PID
  $! 执行上一个背景指令的PID
$? 上一个指令的返回值
4环境变量
由export关键字处理过的变量叫做环境变量。我们不对环境变量进行讨论,因为通常情况下仅仅在登录脚本中使用环境变量。
三:运算符
1.linux有三类运算符:
算术运算符:+ -*  /  %
逻辑运算符:! &&  ||
比较运算符
 
算术运算符:
let sum=“$a + $b"
注意:等号两边没空格 加号两边有空格。且有关键字 let 不然sum是字符算100 + 200的形式。
 
逻辑运算符:
 
比较运算符:
-eq:等于
-ne:不等于
-gt:大于
-ge :大于等于
-lt:小于
-le:小于等于
let a=1000
let b=400
 文件比较运算符
  -e filename        如果 filename 存在,则为真            [ -e /var/log/syslog ]
  -d filename      如果 filename 为目录,则为真      [ -d /tmp/mydir ]
  -f filename        如果 filename 为常规文件,则为真 [ -f /usr/bin/grep ]
  -L filename        如果 filename 为符号链接,则为真  [ -L /usr/bin/grep ]
  -r filename          如果 filename 可读,则为真              [ -r /var/log/syslog ]
  -w filename        如果 filename 可写,则为真            [ -w / ]
  -x filename        如果 filename 可执行,则为真          [ -L /usr/bin/grep
 filename1 -nt filename2 如果 filename1 比 filename2 新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
  filename1 -ot filename2 如果 filename1 比 filename2 旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
  字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
  -z string              如果 string 长度为零,则为真          [ -z "$myvar" ]
  -n string              如果 string 长度非零,则为真              [ -n "$myvar" ]
  string1 = string2 如果 string1 与 string2 相同,则为真 [ "$myvar" = "one two three" ]
  string1 != string2 如果 string1 与 string2 不同,则为真 [ "$myvar" != "one two three" ]

if    [    $a  -gt    $b  ]
注意空格  】也需要空出来
貌似除了=号不需要
3.if语句
  if [ "22" -lt "33" ]  then  //注意空格
  echo "22 less than 33"
  else
  echo "no"
  fi                                  //if语句的结束
4.case语句
case:把保留字case右边的值和比括号左边的值比较
case $varname in
value1)  //数字判断直接是1)  字符串判断写“1”)
.......
;;  //!!两个分号不能省略,作为一种情况的结束。
value2)
.....
;;
*)   //相当于default:默认执行的
....
esac
 
  echo "enter a number"
  read ans                    //读取一个变量read
  case $ans in
  1)
  echo  "you numer is $ans"
  ;;                                //注意符号是两个 ;
  2)
  echo "you number is 2"
  ;;
  [3-9])
  echo "you number is $ans"
  ;;
  *)                                  //*通配符
  echo "others"
esac
3.while语句
while [ ....] 
do
....
done
 
4.forin循环
for friend in xdw xdw2
do
...
done
另外使用break 跳出循环
使用cotinue到达循环的开始
6.bash中几种循环
  6.1. for name [ in word ] ; do list ; done
  6.2. for (( expr1 ; expr2 ; expr3 )) ; do list ; done    //注意有2层括号
  6.3 while [expr] do list; done
  其中list简单说就是一串由操作符(operator ;、&、&&、||)
  分各给出一个简单例子:
  1.
  for filename in $(ls)
  do
  cat $filename
  done
  2.
  for((i=0; i<10; i++))
  do
  echo $i
  done
  3.
  x=1
  sum=0
  while [ $x -le 10 ] //注意[ ] 两边的空格
  do
  let sum=sum+$x  //shell中算术计算使用let
  let x=x+1
  done
  echo $sum
4.函数
函数定义格式
function functionname
{
command;
command;
}
函数内部$1 表示传入的第一个参数, $2 表示传入的第二个参数
使用参数之前要先验证传入参数的个数正确与否
$# 表示传入参数个数的总数
 
函数内部 return 数字作为返回值
函数体外 $? 表示上一个函数返回的返回值
五:用户交互
1clear 是清屏
 
2.readvarname
将键盘输入的内容保存到变量varname中,默认为字符串。
 
3.数据正常时流向屏幕,显示在屏幕上。改变数据的正常流向,将其流向其他地方,比如文件中。这个过程叫重定向
标准输入:键盘 
标准输出:屏幕
从文件获取内容也叫重定向。<
echo “hello,xdw”将正常输出到屏幕上。
echo “hello,world" > xdw.dat
大于号(>)将内容输出到xdw.dat这个文件中去。
1.若文件不存在,则创建一个新的文件。
2.若文件存在,则替换掉文件的原有内容。
echo ”hello ,xdw" >>xdw.dat
双大于号将内容输出到xdw.dat这个文件中,但是是将内容添加到文件的末尾,而不清除原有数据。
所以使用双大于号。文件不存在的时候同样会创建文件。
2>  :将所有的错误信息重定向到一个文件中去。
 
 
(自己sb了。
之前问彬哥log信息在屏幕上刷的太快看不到怎么办- -。。。彬哥很惊奇的回答我:重定向到文件啊
他觉得很简单的东西我竟然不知道。。。。)
 
4。显示存入文件中数据
cat filename
cat:是一个实用程序三大功能:
1一次显示整个文件。
cat  filename
2.从键盘创建一个文件。
cat  >  filename
只能创建新文件,不能编辑已有文件.ctrl+c完成文件的创建。
3.将几个文件合并为一个文件。
cat  file1  file2  > file
linux循环执行命令脚本

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。