首页 > 系统相关 >shell基础

shell基础

时间:2024-10-06 16:01:25浏览次数:6  
标签:shell text 基础 state marks nodes type id

===shell脚本常用赋值的两种方式 1、user=$(hostname) 2、user=`hostname` ===循环自加1常用方式 1、i=$(($i+1))      2、let "i = i + 1" 3、let "i++" 或者let i++ 4、i=`expr $i + 1` 5、i=$(expr $i + 1) ===退出脚本 exit 1 异常退出脚本 exit 0 正常结束脚本 ===标准输出、错误输出重定向到/dev/null command 2>&1 >/dev/null command >& /dev/null或者command >& >/dev/null ===检查当前用户是否是超级用户 if [ $UID -eq 0 ];then echo "user is root";fi who -u 输出当前用户uid echo $USER 输出当前用户名 ===shell内定变量 $0 当前shell脚本名,$#脚本总共有几个参数,$* 所有参数, $?显示上一次命令执行返回值,成功返回0,失败返回1 $1、$2等代表第一个参数、第二个参数等   各流程控制语句语法 if结构体 if [];then command;fi if [];then command;elif [];else command2;fi if [];then command;elif [];then command2;else command3;fi while结构体 while 判断;do command;done for结构体 for x in y;do command;done case结构体 case x in;y) command;;z) command;esac     条件测试语句 文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句 1、文件测试语句 -d 测试文件是否为目录,是为真 -e 测试文件是否存在,是为真 -f 测试文件是否为一般文件,是为真 -r 测试当前用户是否有权限读取,是为真 -w 测试当前用户是否有权限写入,是为真 -x 测试当前用户是否有权限执行,是为真 2、逻辑测试语句 && 与,前面执行成功才会执行后面 || 或,前面执行失败才会执行后面 ! 非,执行结果取反 如:[ ! $USER = root ] && echo "user" || echo "root" 判断当前用户,管理员则输出root,普通用户输出user a && b a执行成功才执行b a || b a执行失败才执行b 3、整数值比较语句 整数比较运算符仅可以比较数字 -eq 是否等于 -ne 是否不等于 -gt 是否大于 -lt 是否小于 -ge 是否大于或者等于 -le 是否小于或者等于 如:FreeMem=free -m | grep Mem: | awk '{print $4}' [ $FreeMem -lt 1024 ] && echo "Insufficient Memory" 判断系统可用内存小于1024M时,输出警告 4、字符串比较语句 = 比较字符串内容是否相同 != 比较字符串内容是否不同 -z 判断字符串内容是否为空 如:[ $LANG != "en.US" ] && echo "Not en.US" 判断当前系统语言是否en.US,否则输出警告   流程控制语句例子 if例子 #!/bin/bash ip=$(cat ips.txt) for i in $ip do ping -c 3 -W 3 -i 0.2 $i 2>&1 >/dev/null if [ $? -eq 0 ];then echo "Host $i is online" else echo "Host $i is offline" fi done   for例子 #!/bin/bash ip=$(cat ips.txt) for i in $ip do ping -c 3 -W 3 -i 0.2 $i 2>&1 >/dev/null if [ $? -eq 0 ];then echo "Host $i is online" else echo "Host $i is offline" fi done   while例子 #!/bin/bash PRICE=$(expr $RANDOM % 1000) TIMES=0 echo "商品实际价格为0-999之间,猜猜看是多少?" while true do read -p "请输入您猜测的价格数目:" P let "TIMES = TIMES + 1" if [ $P -eq $PRICE ];then echo "恭喜您答对了,实际价格是 $PRICE" echo "您总共猜测了 $TIMES 次" exit 0 elif [ $P -gt $PRICE ];then echo "太高了!" else echo "太低了!" fi done case例子 #!/bin/bash read -p "请输入一个字符,并按Enter键确认:" KEY case "$KEY" in [0-9]) echo "您输入的是数字" ;; [a-z]|[A-Z]) echo "您输入的是字母" ;; *) echo "您输入的是其他字符" esac

标签:shell,text,基础,state,marks,nodes,type,id
From: https://www.cnblogs.com/gpysir/p/18449136

相关文章

  • shell实例
    1.显示系统一些基本信息可以将该脚本加入到开机自启动里面,这样开机就会输出基本信息#!/bin/bashinfo(){system=$(hostnamectl|grepSystem|awk'{print$3}')kernel_release=$(hostnamectl|grepKernel|awk-F:'{print$2}')Virtualization=$(hostnamectl|grep......
  • shell调用expect实现用户创建免密登录
    这是一个用于(批量或者免交互)创建用户免密的shell脚本通过shell的for循环和变量,实现批处理和免交互#!/bin/bashpassword="liwanliang"expect-c"spawnsshliwl@node084expect{\"*yes/no*\"{send\"yes\r\",exp_continue}......
  • # 学期(如2024-2025-1) 学号20241405 《计算机基础与程序设计》第2周学习总结
    |这个作业属于哪个课程|2024-2025-1-计算机基础与程序设计)||这个作业要求在哪里|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13276))||这个作业的目标|数字化、信息安全、自学教材计算机科学概论(第七版)第1章并完成云班课测试、《C语言程序设计》第1章并......
  • 2024-2025-1 20241416 《计算机基础与程序设计》第二周学习总结
    这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标 数字化、信息安全、自学教材计算机科学概论(第七版)第1章并完成云班课测试、《C语言程序设计》第1章并完成云班课测试作业正文......
  • 2024-2025-1 20241329 《计算机基础与程序设计》第二周学习总结
    作业信息作业归属课程:https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02作业目标:1.数字化2.信息安全3.自学教材:计算机科学概论(第七版)第1章并完成云班课测试、《C语言程序设计》第1章并完成云班课测试作......
  • 2024-2025-1 20241311 《计算机基础与程序设计》第二周学习总结
    学期(2024-2025-1)学号(20241311)《计算机基础与程序设计》第2周学习总结作业信息这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第二周作业)这个作业的目标<写上具体方......
  • 2024-2025-1 20241421 《计算机基础与程序设计》第二周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标数字化、信息安全、自学教材计算机科学概论(第七版)第1章并完成云班课测试、《C语言程序设计》第1章并完成云班课测试......
  • 学期(2024-2025-1) 学号20241425 《计算机基础与程序设计》第2周学习总结
    学期(2024-2025-1)学号20241425《计算机基础与程序设计》第2周学习总结作业信息这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>([2024-2025-1计算机基础与程序设计第二周作业]https://www.cnblogs.com/rocedu/......
  • 《计算机基础与程序设计》第二周学习总结
    学期(2024-2025-1)学号(20241412)《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程<班级的链接>2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>2024-2025-1计算机基础与程序设计第一周作业)作业正文https://www.cnblo......
  • 2024-2025-1 20241408 《计算机基础与程序设计》第二周学习总结
    2024-2025-120241408《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标数字化、信息安全、自学教材计算机科学概论......