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颜色大全 立即下载

相关推荐

制造业信息化的现实困局与未来展望:从基础到数字化的挑战与机遇

随着全球科技的发展和市场竞争的加剧,制造业的转型升级成为企业必须面临的挑战。在信息化和数字化的浪潮下,许多企业试图通过技术创新来提升自身竞争力。然而,现实情况是,绝大部分制造业企业的基本信息化都尚未完成,更遑论复杂的数字化。那么,制造业在信息化进程中面对哪些阻碍?未来又该如何实现从基础信息化到数字化的转型?

Yz2024的博客 2983

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

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

van_peak的专栏 1476

计算机考研复试面试常问问题 数据结构篇(下)

计算机考研复试面试常问问题 数据结构篇(下) 使用前需知(拒绝白嫖,如果对你有帮助,你只需点个赞就行): 注意:有人在闲鱼上盗卖我的资料,而且还有很多同学买了,请各位擦亮双眼,我是整理出来免费分享给大家的! 大家请多点赞和评论,这样后面的同学更容易百度到,不至于被人盗卖,我就不加水印影响大家使用了! 第一次整理,度不好控制,有不好的地方希望大家理解,后面可能会改进,造福今年之后的同学们! ...

程序员宝藏的博客 1万+

shell编程

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

mankeywang的博客 6283

聚类教程:cisTopic——来自单细胞表观基因组学数据的顺式调控主题的概率建模

之前运行这步的时候报错了如下: 后来发现原因是Ubuntu自动把R包更新到4.2版本,但是Rstudio版本没有更新,更新Rstudio即可,更新Rstudio的教程看此教程:。

watermel__的博客 1051

保姆级教程:用Docker快速部署mpromonet/webrtc-streamer实现WebRTC直播(附常见问题解决)

本文提供了一份详细的Docker部署mpromonet/webrtc-streamer的实战指南,帮助用户快速搭建WebRTC直播服务。内容涵盖从环境准备、基础部署到进阶配置与性能调优的全过程,并针对容器网络、视频流配置、跨网访问等常见问题提供了解决方案,旨在实现低延迟的流媒体传输。

dell8的博客 177

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

高通Camx功能feature分析之十:高通NCS服务之注册和启动

本文介绍了高通NCS(非相机传感器)服务的注册与启动流程。NCS通过QMI接口访问陀螺仪等传感器,为相机EIS/AEC等功能提供辅助数据。文章详细解析了服务注册时的QueryCapabilites能力查询、RegisterService注册流程,以及通过StartNCSService启动服务线程的过程。重点包括:1)AF/EIS等节点通过NCSService创建传感器对象;2)注册时需校验传感器类型和接口;3)首次注册成功后会启动NCS服务线程;4)采样率变化时需重新配置会话。通过线程池管理实现传感器数据的

1261

SHELL常用字体颜色代码

SHELL字体颜色

楚枫默寒的博客 403

SAP-ABAP:SAP信贷管理核心:CL_UKM_BUPA_FACTORY类完整解析与实践指南

SAP信贷管理核心类CL_UKM_BUPA_FACTORY解析 CL_UKM_BUPA_FACTORY是SAP信贷管理(UKM)模块的核心类,作为业务伙伴信贷数据的中央控制台,它提供: 统一入口:标准化实例化客户/供应商信贷对象 主要功能: 获取单条/批量业务伙伴数据 安全保存数据变更 封装底层数据访问逻辑 典型应用场景: 信贷主数据批量维护 自动化限额调整 订单信贷实时检查 性能优化建议: 使用批量方法替代循环单条处理 合理设置字段选择 实施缓存策略 该类通过简洁API简化复杂信贷操作,是SAP信贷管理开

baidu_35680696的博客 1208

借助ChatGPT完成课题申报书中框架思路写作指南

通过这篇文章的学习,我们可以让ChatGPT先为用户匹配研究理论、研究方法、研究思路、研究内容等,为申请人提供一些参考,能够帮助对拟申报课题有一个初步的认识。当申请人找到了合适的理论、方法和问题后,再借助精细化提示词模型提问,那ChatGPT回答的启发性肯定会有质的提升,更具有使用价值。

智能AI让学术科研更容易 2468

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

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

weixin_39884323的博客 673

华为OD机试 - 物流仓储多维度成本利润综合查询系统 - 二维数组(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。某物流企业在全国多个仓库开展仓储业务,需要对不同仓库、不同时段的入库成本、出库收入和库存损耗进行综合统计分析,用于生成 日报、周报和月报。字段说明及取值范围如下:warehouses: int[] 扁平化数组 [w0d0in, w0d0out,

学Java,找哪吒 308

shell常用代码块

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

Liao Tuo 2689

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Shell编程基础常用代码1

Shell编程基础常用代码1

Allen_人工智能与大数据 549

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

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

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

qq_33240556的博客 613

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

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、付费专栏及课程。

余额充值