shell常用代码

shell大全(强烈推荐(干货)) {变量#匹配规则} 从头开始匹配,最短删除${变量##匹配规则} 从头开始匹配,最长删除${变量%匹配规则} 从尾开始匹配,最短删除${变量%%匹配规则} 从尾开始匹配,最长删除${变量/旧字符串/新字符串} 替换字符串,仅替换第一个${变量//旧字符串/新字符串} 替换字符串,替换全部。 阅读详情

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。


打开终端 创建一个以.sh为后缀的文件,例如test..sh。内容如下:

#!/bin/bash
echo "hello"
chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

变量:

变量类型:局部变量 如var_, 环境变量 如#!, shell变量 如#!

var_ = 1 //命名      命名规则与C语言相似,字母或下划线开头,接多个或者单个任意字母,数字或下划线, 避开shell关键字,help命令查看保留关键字
readonly var_        //设为只读
unset var_          //删除变量。
string="abcd"
echo ${#string} #输出 4
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo
string="runoob is a great company"
echo `expr index "$string" is`  # 输出 8

拼接字符串

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"
echo $greeting $greeting_1

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取子字符串

以下实例从字符串第 2 个字符开始截取 4 个字符:

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

查找子字符串

查找字符 "i 或 s" 的位置:

string="runoob is a great company"
echo `expr index "$string" is`  # 输出 8

参数处理说明
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。
如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。
如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$-显示Shell使用的当前选项,与set命令功能相同。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
-eq检测两个数是否相等,相等返回 true。[ $a -eq $b ] 返回 false。
-ne检测两个数是否不相等,不相等返回 true。[ $a -ne $b ] 返回 true。
-gt检测左边的数是否大于右边的,如果是,则返回 true。[ $a -gt $b ] 返回 false。
-lt检测左边的数是否小于右边的,如果是,则返回 true。[ $a -lt $b ] 返回 true。
-ge检测左边的数是否大于等于右边的,如果是,则返回 true。[ $a -ge $b ] 返回 false。
-le检测左边的数是否小于等于右边的,如果是,则返回 true。[ $a -le $b ] 返回 true。

布尔运算符

下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:

运算符说明举例
!非运算,表达式为 true 则返回 false,否则返回 true。[ ! false ] 返回 true。
-o或运算,有一个表达式为 true 则返回 true。[ $a -lt 20 -o $b -gt 100 ] 返回 true。
-a与运算,两个表达式都为 true 才返回 true。[ $a -lt 20 -a $b -gt 100 ] 返回 false。

显示命令执行结果

echo `date`
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg  
printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 
printf "%-10s %-8s %-4.2f\n" 杨过 男 48.6543 
printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 
num1=100
num2=100
if test $[num1] -eq $[num2]
then
    echo '两个数相等!'
else
    echo '两个数不相等!'
fi
参数说明
=等于则为真
!=不相等则为真
-z 字符串字符串的长度为零则为真
-n 字符串字符串的长度不为零则为真
参数说明
-e 文件名如果文件存在则为真
-r 文件名如果文件存在且可读则为真
-w 文件名如果文件存在且可写则为真
-x 文件名如果文件存在且可执行则为真
-s 文件名如果文件存在且至少有一个字符则为真
-d 文件名如果文件存在且为目录则为真
-f 文件名如果文件存在且为普通文件则为真
-c 文件名如果文件存在且为字符型特殊文件则为真
-b 文件名如果文件存在且为块特殊文件则为真
cd /bin
if test -e ./bash
then
    echo '文件已存在!'
else
    echo '文件不存在!'
fi
num1=$[2*3]
num2=$[1+5]
if test $[num1] -eq $[num2]
then
    echo '两个数字相等!'
else
    echo '两个数字不相等!'
fi
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done
#!/bin/sh
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done
until condition
do
    command
done

condition 一般为条件表达式,如果返回值为 false,则继续执行循环体内的语句,否则跳出循环。

以下实例我们使用 until 命令来输出 0 ~ 9 的数字:

#!/bin/bash

a=0

until [ ! $a -lt 10 ]
do
   echo $a
   a=`expr $a + 1`
done
echo '输入 1 到 4 之间的数字:'
echo '你输入的数字为:'
read aNum
case $aNum in
    1)  echo '你选择了 1'
    ;;
    2)  echo '你选择了 2'
    ;;
    3)  echo '你选择了 3'
    ;;
    4)  echo '你选择了 4'
    ;;
    *)  echo '你没有输入 1 到 4 之间的数字'
    ;;
esac

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

shell中函数的定义格式如下:

[ function ] funname [()]

{

    action;

    [return int;]

}
命令说明
command > file将输出重定向到 file。
command < file将输入重定向到 file。
command >> file将输出以追加的方式重定向到 file。
n > file将文件描述符为 n 的文件重定向到 file。
n >> file将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m将输出文件 m 和 n 合并。
n <& m将输入文件 m 和 n 合并。
<< tag将开始标记 tag 和结束标记 tag 之间的内容作为输入。
#!/bin/bash
# author:菜鸟教程
# url:www.runoob.com

#使用 . 号来引用test1.sh 文件
. ./test1.sh

# 或者使用以下包含文件代码
# source ./test1.sh

echo "菜鸟教程官网地址:$url"
command << delimiter
    document
delimiter

它的作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。


sh代码-shell颜色大全 立即下载

相关推荐

深入Linux内核:PTP硬件时间戳(HW Timestamp)是如何炼成的?

本文深入探讨了Linux内核中PTP硬件时间戳(HW Timestamp)的实现原理与实战应用。通过分析IEEE 1588协议在网络时间同步中的关键作用,详细解析了硬件时间戳在Linux内核中的架构设计、驱动开发及性能优化技巧,帮助开发者实现纳秒级精度的时间同步。

weixin_30727835的博客 651

LINUX查看系统、资源、磁盘和分区、网络、进程、用户

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo# 查看CPU信息 # hostname # 查看计算机名 # lspci -tv# 列出所有PCI设备 # lsusb -tv# 列出所有USB设备 # lsmod# ...

van_peak的专栏 1476

为什么需要知识图谱?什么是知识图谱?——KG的前世今生

我的知乎专栏,对知识图谱感兴趣的朋友可以关注。标题的命名顺序可能让有的读者不太习惯。通常在介绍一个陌生事物的应用前,我们先给出其定义。之所以换个顺序,是为了不让读者一开始就接触比较冰冷生硬的概念刻板描述(后面我尽量用更具体、准确的例子来表达),另一方面也是为了通过现实生活中的例子自然的引入知识图谱的概念。希望通过这种方式加深读者的印象和理解。为了减轻读者理解的负担,我尽可能地避免引入过多的概念和技术

SimmerChan的专栏 8万+

shell编程

文章目录text语句test测试语句分支控制语句 Shell是一个命令解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序,用 户可以使用Shell来启动、挂起,停止、编写一些程序 echo (输内容到控制台) 脚本格式 脚本开头:#!/bin/bash shell中的变量和定义 Share脚本命名规则和C语言一样。 数字,字母,下划线,不能以数字开头。 变量不需要声明数据类型,所有的类型默认字符串类型。 shell语法给变量赋值的时候,等号的两边不能出现

mankeywang的博客 6283

逆变器方案(工频全套)工频正弦波逆变器开发板全套设计资

逆变器方案(工频全套)工频正弦波逆变器开发板,24V-72V通用12只TO-247封装MOS管,额定输出功率6500W以下;配有触摸屏操作界面,运行数据一目了然,带市电互补UPS功能,可选择电池优先或市电有限工作,我们的开发板均从实战角度出发,让您的学习更便捷,包含全套设计资料,PCB.原理图.源代码,程序均有中文注释,MCU选用美国微芯公的PIC-8位单片机,民用数字电源首选单片机,抗干扰能力强,运行稳定。...

m0_73494033的博客 892

inferCNVpy分析流程学习

inferCNV的用途大家都已经很清楚了,接下来就走一下流程,试一试Python版的inferCNV。使用的数据集为:GSE188711,既往推文可见:Scanpy分析全流程(含harmonypy整合/细胞周期矫正/双细胞检测及去除)(

zfyyzhys的博客 1295

sh文件代码执行,含切换用户执行代码

1.代码添加到指定文件内容最后 echo "oracle soft nofile 1024">>etc/security/limits.conf 2.切换用户执行内容 su - oracle -c echo " export EDITOR=vi export TMP=/tmp export TMPDIR=$TMP export ORACLE_SID=orcl exp...

leijianghong1987的博客 771

Linux 系统管理员必备:Chrome 企业版离线部署全攻略(含 RPM/DEB 双版本)

本文详细介绍了Linux系统管理员如何离线部署Chrome企业版,涵盖RPM和DEB双版本。从获取官方离线安装包到静默安装、权限配置及企业级策略管理,提供全流程解决方案,特别适合Ubuntu等DEB系系统管理员参考。

f9g0h的博客 483

SHELL常用字体颜色代码

SHELL字体颜色

楚枫默寒的博客 403

为什么你的SSE连接总断?深入对比EventSource与fetch-event-source的5大差异点

本文深入对比了原生EventSource与@microsoft/fetch-event-source库在SSE连接稳定性上的五大关键差异。重点剖析了后者在请求能力、连接控制、错误处理、数据解析及性能优化方面的优势,特别是其支持POST请求、自定义Header、精细化的重连策略与生命周期管理,为解决生产环境中SSE连接频繁断开的问题提供了专业方案。

weixin_28077113的博客 493

在Rviz仿真环境中搭建传送带

<geometry><material>

qq_58268456的博客 936

shell执行plsql代码块_shell 脚本常用调试方法

曾经我刚开始学习 shell 脚本时,除了知道用 echo 输出一些信息外,并不知道其他方法,仅仅依赖 echo 来查找错误,比较难调试且过程繁琐、效率低下。本文介绍下我常用的一些 shell 脚本调试方法,希望能对 shell 的初学者有所帮助。sh 命令调试选项(推荐)使用方法:字符串读取脚本。$ sh -c 'if [ 1 -lt 2 ];then echo "true"; else ech...

weixin_39884323的博客 673

SAP BTP ABAP RAP 开发对象命名规范与落地实践

摘要:SAP BTP ABAP开发中的命名规范实践 在企业级ABAP开发中,命名规范是提升交付效率的工程化手段。SAP推荐采用[/<namespace>/][<prefix>]_<object_name>_[<suffix>]的结构化命名框架,解决多对象、多团队的协同问题。关键实践包括:使用组织专属命名空间避免冲突;通过prefix区分同类型对象的不同语义(如UI_/API_);object_name体现业务语义而非技术细节;suffix表达次级差异。在具体对

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1433

shell常用代码块

1. 截取字符串中的数字echo "2014年7月21日" | tr -cd "[0-9]"2. 如果文件存在则删除if [ -e $FILE ] then rm -f $FILE fi3. 待续…

Liao Tuo 2689

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Shell编程基础常用代码1

Shell编程基础常用代码1

Allen_人工智能与大数据 549

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hadoop 的 shell 命令用的多吗?,说出一些常用的?思维导图 代码示例(java 架构)

Hadoop Shell命令是与Hadoop分布式文件系统(HDFS)和YARN进行交互的常用工具,它们为用户提供了一种便捷的方式来进行文件管理、集群监控以及作业提交等操作。对于日常管理和开发工作来说,这些命令是非常重要的,并且使用频率较高。

qq_33240556的博客 613

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Shell编程基础常用代码2

Shell编程基础常用代码2

Allen_人工智能与大数据 1008

[日常办公][shell]常用代码段

文章目录数组, 字符串匹配查找并kill进程 数组, 字符串匹配 arr=("1995" "1995x" "1995ee" "1995ss" "199") for i in ${arr[*]}; do if [[ "${i}" =~ "1995".* ]]; then echo "matched $i" if [[ $i = "1995ee" ]]; then echo -e "

giantpoplar的专栏 217

shell脚本常用代码片段

参考: 编写可靠shell脚本的八个建议 声明一个文件是bash脚本文件 #!/usr/bin/env bash 注意: 需要写在文件第一行 获取当前执行脚本的绝对路径 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 无论脚本从哪里调用,怎么调用,上面代码都能非常有用的获得脚本存储位置绝对路径; 除非涉及的文件...

Humbinal's Blog 404

Shell脚本常用命令学习及简单小总结代码

文章目录Shell是乜鬼Shell变量定义变量使用变量Shell数组定义数组读取数组Shell多行注释Shell输入&&输出输入——read输出——echoShell函数函数参数总结代码 Shell是乜鬼 shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。shell既是一种命令语言,又是一种程序设计语言。 Linux中的shell种类众多: Bourne Shell (/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C .

再努力一点点就好了 3万+

Linux shell 常用代码片断

Linux shell 常用代码片断 参数输入 echo "input tips:" read input_variable echo "You entered: $input_variable" 数字判断 if echo "$input_variable" | grep -q '^[0-9]\+$'; then echo "$input_variable is number....

crabdave的博客 124

shell常用代码积累

1、使用getopts从命令行接收参数 例: whilegetoptsh:u:p:OPTION do case$OPTIONin h)echo"主机地址:$OPTARG";; u)echo"用户名:$OPTARG";; p)echo"密码:$OPTARG";; \?)echo"...

weixin_30439031的博客 62

shell常用代码速查

shell常用代码速查

读书,编程 110

X皮书之shell 常用代码

X皮书之shell 常用代码 目录 ♦思维导图 ♦序 ♦写一个die函数 ♦必须以root帐号执行本脚本 ♦命令行传参 ♦杀掉指定进程 ♦局部扫盲 ♦总结 思维导图 序   把这几天常用的一些方法积累下来,以便以后使...

weixin_30627381的博客 96
上一篇: toward baidu programming
下一篇: CGI C/C++ tinyhttpd
httpdrestart
博客等级 码龄8年 65粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值