ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell

2022-05-13 11:02:38  阅读:194  来源: 互联网

标签:bin shell sum echo score 033 bash


一、解释器

解释器是一种命令解释器,主要作用是对命令进行运行和解释,将需要执行的操作传递给操作系统内核并执行

#!/bin/bash(默认),指定解释器。例如:

#!/bin/bash

echo ‘hello, shell'  

二、变量

shell的变量不需要先声明,可以直接使用,eg:a=15

调用变量:

  $a 或者${a}    ,建议用${a}

$?, 判断上一条命令是否成功,0表示成功,其它表示不成功

$0,返回脚本的文件名称

$1-$9,返回对应的参数值

$*,返回所有的参数值是什么

$#,返回参数的个数和

这个很难记,还是得用起来的时候查查

#!/bin/bash

echo "脚本名称:$0" echo "第一个参数是:$1" echo "第二个参数是:$2" echo "一共有多少参数:$#" echo "这些参数是:$*"

 

 

三、常用符号

> ,会覆盖原有的内容

>> ,不会覆盖原有的内容

; ,分号,执行多条命令,cat 1.txt; ls

| ,管道符,ps –ef | grep xxx

&& ,前面的命令执行成功,后面的才可以执行

|| ,前面的命令执行失败,后面的才可以执行

“” ,双引号中的变量输出变量值

‘’ ,单引号中的变量输出本身

`` ,输出命令结果 eg:a=`date`;echo $a

 

 

 

四、整数运算符

  加减乘除余

以加示例:

expr 1 + 2

  echo $[1 + 2]

  echo $((1 + 2))

注意: expr加号两边要有空格,a=1;b=2;expr $a + $b; echo $[a+b]; echo $((a+b))

 

五、小数

bc计算器

保留多少位小数可以通过scale,例如:echo "scale=2;3/2" | bc

结果为:1.50

 

六、条件判断

文件目录

语法:[ 判断表达式 ],注意,[]内部左右要有空格

-e 目标是否存在

例如:[ -e test.sh ] || touch test.sh

-d 是否为路径

例如:[ -d /root/test ] && echo "/root/test存在"

-f 是否为文件

例如:[ -f test.sh ] && echo "是文件"

权限

-r 是否有读取权限

-w 是否有写入权限

-x 是否有执行权限

[ -x test.txt ] && echo '有执行权限'

字符串

[ `echo '1.2 < 2.1' | bc` -eq 1 ] && echo '小于'

结果是:小于

if语句

#!/bin/bash

if [ $1 -eq $2 ] then echo "$1 等于 $2" else echo "$1 不等于 $2" fi 或者: #!/bin/bash read -p "请输入你的分数:" score if [ -z $score ];then echo "你还没有输入分数" exit fi if [ $score -ge 0 ] 2> /dev/null && [ $score -lt 60 ];then echo "差" elif [ $score -lt 80 ] 2> /dev/null;then echo "中" elif [ $score -lt 90 ] 2> /dev/null;then echo "良" elif [ $score -lt 101 ] 2> /dev/null;then echo "优" else echo "分数值为0~100之间" fi 这段shell脚本的作用是键盘输入分数,显示成绩等级

注释:[ -z STRING ] “STRING” 的长度为零则为真。

2> /dev/null;then,下面判断报错的时候输出到屏幕

 

case语句

case的语法:

case 变量 in

值1 ) 执行动作1 ;; 值2 ) 执行动作2 ;; .... esac 例如:输入性别,输出对应的结果 #!/bin/bash echo '请输入性别:' read sex case $sex in '男') echo '帅哥' ;; '女') echo '美女' ;; * ) echo '输入有误请重新输入' ;; esac

for语句

例如:打印1-10这10个数字之和

#!/bin/bash

sum=0 for ((i=1;i<11;i++)) do sum=$(($sum + $i)) done echo $sum

while语句

例如:打印1-10这10个数字之和

#!/bin/bash

#打印1-10这10个数字之和 sum=0 n=1 while [ $n -lt 11 ];do sum=$(( $sum + $n )) n=$(( $n + 1 )) done echo $sum

输入输出

read -参数

-p:给出提示符,不支持"\n"换行

-s:隐藏输入的内容

-t:给出等待的时间,超时会退出read

#!/bin/bash read -p "请输入密码:" pass echo '你输入的密码是:'$pass

字体特效

字体色30-37:
  echo -e "\033[31m 红色字 \033[0m”
背景色40-47:
  echo -e "\033[47;34m 白底蓝字 \033[0m"
特效
  echo -e "\033[1m 高亮度 \033[0m"
  echo -e "\033[4m 下划线 \033[0m"
  echo -e "\033[5m 闪烁 \033[0m"

 

标签:bin,shell,sum,echo,score,033,bash
来源: https://www.cnblogs.com/siguadd/p/16265821.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有