shell脚本变量

uname -a   内核版本号

管道:前面的内容做后面的输入

 

--set 设置权限,并替换

--restore 回复

 

##shell是壳,命令解释器,“翻译官”。是一个人机接口用于解释用户输入的命令,将命令解释为linux内核可以执行的2进制代码。

 

cat /etc/shells   察看系统支持的shell

 

tab键补全

 

alias 别名=‘原命令’    不能加空格  unalias xx  取消别名

 

grep ="grep --color=auto" 查询的带颜色

 

###如果要永久存在   加入/etc/profile (用 echo "alias xxx ='xx' >> /etc/profile ) 或  ~/.bashrc   

然后#source ~/.bashrc

 

###要用户生效   加入  /etc/bashrc最后 

然后source /etc/bashrc

 

/etc/profile 用户第一次登录时文件被执行

/etc/bashrc  bash shell打开时读取 

/bash profile   仅执行一次  环境变量    执行.bashrc(交互式  、Login方式进入bash)

/.bashrc   新开shell就执行(交互式  non-login方式进入)

 

unalias 别名

 

尽量一行一个  可以用;号分割

 

&& 与    || 或    (可以看做if  else)

 

echo $?    表示上一个表达式的结果

$? =0   正确   $?不为0是错误

 

tee 将过程输出到某 file

 

echo  输出

 

Shell 基本格式

 

Shell 脚本基本元素

(1)  #!/bin/bash 必须的    /sh

(2)  # 注释

(3) 变量

(4)控制

 

运行时   chmod + x first.sh

if while for  把shell控制台里的内容放入脚本即可

 

变量名称不能以数字开头

 

变量默认的是字符串型

 

$HISTSIZE   =  1000

$PWD  当前路径

 

本地变量  

变量名=值   1.等号两边没有空格  2.取值包含空格要用双引号  3.区分大小写

$a   或者  ${abc} 避免拼接的语误

 

echo  -n 不换行

 

环境变量

PATH=/home:$PATH

export $PATH

 

env  显示环境变量

 

内部变量

$#  传送给shell的参数数量

$?  是否成功

$0 程序名称

$*  调用shell程序传输的所有单字符串  

$@  全部参数

$ n  第几个参数

$$  返回pid
 

' '里的都是普通字符  原样输出

$  是变量名

“   ”  除了 $   转移符\   倒引号  三个保留   其他的做普通字符

倒引号 ·  · 内当shell执行

 

中文字符原样执行了,有bug


提取字符串 

string ="    "

echo ${string:1:4}

 

##数值运算

1)dd =$(expr $aa + $bb)  + 号两侧有空格

* 作为乘号是  要用通配符    \*

echo `expr 1 + 3`

2) ff=$(($aa+$bb))

3) gg=$[$aa+$bb]

 

read -p "please imp:"  var1     请求用户输入

 

sh  子程序运行完就完清除内容了,之后运行主程序看不到东西

source 不会开启子进程,会在当前进程跑完。

 

条件判断

test n1 -参数 n2   真返回0,假返回1

 

比较整数

test 1 -lt 4  等价于  [  1 -lt 4 ]   (注意空格)

echo $?

 

lt 小于    le 小于等于  gt大于  ge 大于等于  eq等于  ne不等于

 

if  xxx  

then xx

elif xxxx

then 

    echo xxx

else 

    echo xxx

fi

 

-f 存在 且是普通文件

-d  ~  目录

-s  ~ 字节>0

 

test -z s 空串

test s 非空

 

-a 逻辑与   -o 或    !非

 

###  seq 产生序列

 

##  case   xx   in

0)  xxxx ;;

1)  xxxx  ;;

2)  xxxx  ;;

esac

 

##  for i in  `seq 1 9`

 do

     echo xxxxx

done

 

##  read 输入数据时, 以tab或空格分割

输入超了,最后一个变量赋予所以数据

 

read a b

for i  in xxx

do 

     echo xxx

done

 

##  while 与 break

while true

do 

      if xxxxx

      then

           break   (break 2 可以跳两层)

done

 

 

##

函数

funciton()

{

 

}

函数在使用前必须定义,必须将函数放在脚本开始部分

 

可以在函数中引用参数

array_var =(x,x,x,x,x)

array_var[0]=xx

 

*号是整体性,@强调独立性

 

echo  -e   后加  \n 识别\n 换行

 

关联数组   declare -A array 显式声明

 

${#  } 取长度

${!}  取所有值

 

{1...100 生成序列}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值