LINUX——shell的简单编程

在磁盘损坏时,要先输入root密码,再在命令行中输入: fsck /dev/sda2 (发生错误的磁盘)

在fix命令行中输入yes回车

shell的基础编程

Shell:

第一行需要指定哪个程序来编译和执行脚本

 #!/bin/bash 或  # ! /bin/sh

除了第一行使用#以外,其他行使用#表示注释行

变量命名:

变量命名必须以字母或下划线开头,后面可以跟字母、数字和下划线。任何其他字符都表示变量名的结束。

变量名关于大小写敏感。

eg :

 $ name=xxxxxx

 $ x=123

显示变量的值:

 $ echo $ {NAME}  |    $ echo $ NAME

变量分为:本地变量和全局变量

系统的全局变量储存在 /etc/prolife

按照惯例需要大写:

   export LANG

环境变量可以被所有shell进程访问,如果父shell进程产生了子shell进程,则环境变量可被“继承”并复制

变量赋值:

两边不能有空格,如果要给变量赋空值,可以在等号后面跟一个换行符。

清除变量:

unset  variable

显示所有变量:

 set

执行脚本:

 $ . test.sh(脚本名)

 $ sh test.sh(脚本名)

 $ ./test.sh(脚本名)

位置参数:

$n
  $0代表命令本身, 1 − 9 代 表 接 受 的 第 1 − 9 个 参 数 , 10 以 上 需 要 用 括 起 来 , 比 如 1-9代表接受的第1-9个参数,10以上需要用{}括起来,比如 191910{10}代表接收的第10个参数
$*
  代表接收所有的参数,将所有参数看作一个整体
$@
  代表接收的所有参数,将每个参数区别对待
$#
  代表接收的参数个数
$$
脚本运行的当前进程号

$?
显示前面最后一个命令

返回码:
程序控制的返回码: exit N

退出状态为0,成功无错误

退出状态大于0,失败,某处有错误

数组
$ arr=(zhangsan lisi wangwu)

获取元素:

 $ ehco ${arr[0]}

$ ehco ${arr[2]}

$ ehco ${arr[*]}

获取元素个数:

$ echo ${#arr[*]}

改变数组的元素:

$ arr[x]= yyyyyy

date日期的格式化:

$  date  +%Y/%m/%d %H:%M:%S



$  date2=${date  --date='2 days ago'  +%Y/%m/%d %H:%M:%S}

判断:

关于某个档名的【文件类型】判断,如test -e filename 表示是否存在

-e  该【档名】是否存在?
-f   该【档名】是否存在且为档案(file)
-d  该【文件名】是否存在且为目录(directory)

关于档案的权限侦测,如test -r filename 表示可读否(但root权限常有例外)

-r  侦测该档名是否存在且具有【可读】的权限?

-w 侦测该档名是否存在且具有【可写】的权限?

 -x 侦测该档名是否存在且具有【可写】的权限?

关于两个整数之间的判定,例如 test n1 -eq n2

-eq     两数值相等

-ne      两数值不等

-gt       n1大于n2

-lt         n1小于n2

-ge        n1大于等于n2

-le        n1小于等于n2

判定字符串的数据

test -z string 判断字符串是否为0 ? 若 string 为空字符串,则为true



test -n string 判断字符串是否非为0 ? 若 string 为空字符串,则为false



test str1 = str2  判断str1是否等于str2,若相等,则回传true



test str1 != str2  判断str1是否不等于str2,若相等,则回传false

if判断:

单层判断 多层判断

if [ command ];then

  符合该条件执行的语句

 elif [ command ];then

  符合该条件执行的语句

else

  符合该条件执行的语句

fi

for循环:

 for var in item1 item2 ... itemN
   do
     command1
     command2
      ...
      commandN
   done

eg:

 num=10

 s=0

for((i=0;i<${num};i=i+1))

do

      s=$( ( ${s}+${i} ) )

done

while do done, until do done(不定循环):

 while [condition]   <==中括号里面是判断式

  do           <===循环的开始

  程序段落

 done     <==循环结束









until [condition]   <==中括号里面是判断式

  do           <===循环的开始

程序段落

  done     <==循环结束

与while相反,条件成立时,停止循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值