Shell常用命令

COMSOL仿真避坑指南:列管反应器模拟中多孔介质与化学反应设置的5个常见错误 本文详细解析了COMSOL仿真中列管反应器模拟的5个常见错误,包括多孔介质模型选择、化学反应接口配置、对流扩散方程处理、薄层热阻设置及网格独立性验证。特别针对多孔介质与化学反应设置的误区,提供了实用的判断标准和修正方法,帮助工程师避免计算偏差,提升仿真精度。 阅读详情

概述

本文最初写于2021/03/11,遇到新技巧会不定期更新

  • 2021/07/13更新:增加使用案例
    …
    查看机器支持的脚本
cat /etc/shells 

基础

# bash脚本一般以下面这句开头,也就是指定shell脚本的解析器为bash的意思
#!/bin/bash 

字符串

拼接字符串

# 如果需要变量和字符串拼接就用这种最原始的方式就好了,需要注意的是,如果字符串中有变量,不能是用哪个单引号,必须使用双引号
"hello worl $1" 

str1="123"
str2="456"
echo $str1$str2
# 下面这种方式也可以实现字符串拼接的效果
echo $str3"000"
# 系统函数与字符串拼接。date是一个系统函数,需要使用反引号引起来
echo "[`date`]"

# 命令与命令拼接
echo `date``ls`

按空格分隔字符串

str="a b c d e"  
arr=($str) #外层包一个括号表示按空格分隔字符串
echo $arr # 会输出数组的第一个元素,相当于${arr[0]},注意这个$是必须的
echo ${arr[1]} #输出数组中的第二个元素

变量

常用系统变量

系统变量需要以$开头

$HOME # 当前用户的home路径
$PWD #当前路径
$SHELL #当前用的bash解析器

自定义变量

用户自定义变量不需要指定类型,直接复制即可。

  • 在bash中,变量默认是字符串类型,无法直接进行数值运算。
  • 如果变量有空格,需要使用单引号或者双引号引起来。
  • 使用export关键字可以将普通变量提示为全局变量。比如在.bash_profile文件中写的变量我们都export了,这样是为了将其提示为全局变量。
#定义一个变量A并赋值,注意等号左右两边必须没有空格
A=2
echo $A #输出A的值

# 撤销变量赋值,执行下面语句以后,再echo $A,不会有任何输出
unset A

# 定义一个静态变量(只读变量),只读变量不能执行unset命令
readonly B=9
C=1+1
echo $C #这里会输出1+1,而不是输出2

特殊变量:$n

n表示数字。$0代表该脚本的名称,$1-9代表第1到第9个参数。10以上的参数需要写大括号,如9代表第1到第9个参数。10以上的参数需要写大括号,如9代表第1到第9个参数。10以上的参数需要写大括号,如{10}。

特殊变量:$#

获取所有输入参数的个数,通常用于循环。个数中不包含第0个参数。

特殊变量:$*和$@

前者代表命令行中所有参数。这些参数被看成一个整体。

后者代表命令行中所有参数,但是把每个参数区分对待。

/test.sh 3 4 5 6 7
# 下面是$*/$#的输出,从样子上看一点区别都没有
3 4 5 6 7
3 4 5 6 7

特殊变量:$?

上一条命令的返回状态,如果这个变量输出为0,表示上一条命令执行成功,如果为非0则表示上一条命令执行失败。

# 比如在脚本中或者在命令行中执行下面命令,会返回0
echo 'hello world'
echo $?

运算符

  • 数字运算需要使用expr关键字,如expr 2 + 3,expr和运算符直接都要有空格,如果2+3没有空格就不能输出计算结果
  • $((运算式))或者$[运算式]
  • +、-、\*、\分别对应加减乘除
# 计算2+3*4
expr `expr 2 + 3` \* 4

# 可以使用中括号的方式执行
s=$[(2+3)*4]

条件判断

[ 条件 ]条件的左右两边要有空格。非空即判断为true,[]才会判断为false。注意这个条件判断可以理解为是一条语句,不一定要写在if后面。

通常=用于字符串直接的判断。如果是两个数判断,使用-eq判断是否相等

-lt # less than 小于
-le # less equal 小于等于
-eq # equal 等于判断
-gt # greater than 大于
-ge # greater equal 大于等于
-ne # 不等于

按照文件权限判断

-r # 有读权限
-w # 有写权限
-x # 有执行权限

按文件类型判断

-f # 文件存在,并且是一个常规文件
-e # 文件存在
-d # 文件存在并且是一个目录

其他判断

-z [变量值] #如果变量值为空,则条件为true,如果不为空则条件为false

#!/bin/bash

if [ -z "$1" ]; then # 执行这个脚本,如果传值,这么这个条件就进不去了,注意变量需要使用双引号引起来,不写有些解释器解析不出来
        echo $1
        echo 'I am in.'
fi

echo 'hello world'

-n [变量值] #与上面相反,如果变量值非空为true,否则为false

#!/bin/bash

if [ -n "$1" ]; then
        echo $1
        echo 'I am in.'
fi

echo 'hello world'

操作

[ 23 -ge 24 ] # 判断23是否大于等于24
echo $?  # 如果上面条件成立,这里输出0,否则输出1
[ -d test.sh ] # 判断test.sh是否是目录

流程控制表达式

if表达式

# 下面脚本表示如果输入的是1,输出1111,如果输入的是2,输出222
#!/bin/bash
if [ $1 -eq 1 ]; then # 注意这里有分号,中括号中左右要有空格
        echo '1111'
elif [ $1 -eq 2 ]; then
        echo '222'
fi

case表达式

#!/bin/bash
case $1 in #这一行必须要以in关键字结尾
1) #这里表示如果输入的值为1,则只需下面的语句
        echo "1"
;; #这里两个分号表示这个分支的结束
2)
        echo "2"
;;
*) # 星号就是default的意思。
        echo "3"
;;
esac

for循环

累加100以内的值并输出。

#!/bin/bash
s=0
for ((i=1;i<=100;i++))
do
        s=$[$s+$i]
        echo $s
done

for循环还可以变量$*中的值,这个特殊变量在前面讲过,表示所有输入的参数列表。

#!/bin/bash
for i in $*
do
        echo ">> $i"
done

while循环

#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
        s=$[$s+$i] # 累加
        i=$[$i+1] #i自增
done
echo $s

控制台输入

# t表示等待时间,如果超过9s,程序退出,-p表示提示信息,name表示输入的值要放到哪个变量中
read -t 9 -p "please enter your name" name
echo $name

常用系统函数

basename ~/myshell/read.sh # 输出read.sh,也就是输出文件名
dirname ~/myshell/read.sh # 输出/Users/yulei/myshell,也就是输出除文件名外的路径
dirname ~/myshell #输出的是/Users/yulei
date # 获取当前时间

案例

删除指定目录下,指定时间前的所有文件

#!/bin/bash

date_str=`date -d "60 days ago" +%Y-%m-%d`
echo $date_str

# deleting found files in /mnt/f/Mines
find /home/aspirin/TEST00001 -type f ! -newermt ${date_str} -exec rm -rf {} \;
UFS软件分区介绍 本文主要介绍了ufs软件分区管理的概况,能够使大家对软件分区有个大体的认识 阅读详情

相关推荐

最优化学习笔记1——关于拟牛顿法推导

从2020年3月份到现在,一年的时间里断断续续自学最优化,结合豆瓣读书、知乎等网站上的推荐,翻阅了以下书和课程: Stephen Boyd和Lieven Vandenberghe的《Convex Optimization》,这本书被公认为学习凸优化的必读经典著作,其中大量的篇幅讲应用,讲理论和算法的篇幅稍少一些。在B网站上有Boyd的视频课程,油管上也有,不过只有英文字幕,如果是零基础接触,直接看Boyd的视频稍显费劲,B站上也有凌青老师以《Convex Optimization》为教材的讲解,推荐作为入

xiaofei473的博客 1768

shell脚本中表示参数的符号及含义整理

$0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。 $* 和 $@ 的区别 $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" “)包含时,都以”$1" “2&quot;…&quot; 2&quot; … &quot;2"…"n” 的形式输出所有参数 当它们被双引号(" “)包含

hello_java_lcl的博客 1302

半导体EAP系统入门指南:从零开始理解设备自动化程序(附实战案例)

本文深入浅出地介绍了半导体制造中EAP(设备自动化程序)系统的核心作用与工作原理。EAP作为连接MES与生产设备的桥梁,负责指令翻译、数据采集与实时控制,是实现晶圆厂全自动化的关键。文章通过对比手动与自动模式,阐述了EAP在提升效率、保障良率方面的价值,并提供了一个实战案例,帮助读者从零构建对半导体CIM体系中这一关键组件的理解。

weixin_29200741的博客 734

Shell命令行选项与参数用法详解

在bash中,可以用以下三种方式来处理命令行参数 -直接处理:使用$1, $2, ..., $n进行解析, 适合小脚本 -getopts:单个字符选项的情况(如:-n 10 -f file.txt等选项),能处理绝大多数的情况 -getopt:可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等),较复杂、功能也更强大 1、直接处理 使用以下几个变量进行处理: $0 #即命令本身,相当于c/c++中的argv[0] $...

shunchang的专栏 4970

PSM倾向匹配详细步骤和程序

目录1.安装psmatch2统计包。2.数据准备3.数据分析及命令解读4.结果解读4.1模型拟合结果,此处无太多实际意义。4.2试验组可匹配的观测概览,按照命令中设定的匹配规则,试验组有8例患者未能匹配到合适对照。4.3结果解读的重点应该是对stata新生成的中间变量的解读。4.4均衡性检验结果4.5匹配结果的图示化5.Stata命令汇总最后留下两个问题给大家思考:题目 试验设计中,匹配的目的在于确保干预效应估计是建立在可比个体之间的不同结果的基础上。最简单的匹配方式是将干预组和对照组中协变量值相同的两个个

平平淡淡,戒急用忍,一生学闭嘴。 5万+

汉字跨越三千年的生命力与数字时代适应性

文字作为文明载体,其演变规律始终遵循实用性与适应性的平衡。汉字作为现存最古老的文字系统,凭借形义结合的六书构造原理,实现了超方言的文化统一功能。在计算机处理方面,五笔输入法与Unicode支持证明了其技术兼容性,而视觉识别效率的先天优势使其在信息时代更具传播效力。从甲骨文识别AI到现代书法设计,汉字系统持续展现强大的文化承载力与技术适应性,这种活态传承为数字人文研究提供了独特样本。

weixin_29058331的博客 352

linux shell脚本中的各种参数表示

$0:是脚本本身的名字; $1:是第一个参数 $2:是第二个参数 $#:是传给脚本的参数个数; $@:是传给脚本的所有参数的列表,即被扩展为”$1” “$2” “$3”等; $*:是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个,即被扩展成”$1c$2c$3”,其中c是IFS的第一个字符; $$:是脚本运行的当前进程ID号; $?:是显示最后命令的退出状态,0表示没有错误,其他表示有错误; ———————————————— 版权声明:本文为优快云博主「woshiren123ew」的

zwb139615210的博客 819

UE4入门实例17(Unreal制作卡通Post Process材质球)

效果展示 #1 创建Post Porcess材质球 #2 编写Shader功能 #3 设置场景区域内风格化渲染 #1 创建Post Porcess材质球 #2 编写Shader功能 创建基础效果 移除现有通道渲染 设置视图渲染范围 #3 设置场景区域内风格化渲染 #4 加群下载Shader源码:284105567 ...

Unity3d 攻城师一枚 1345

Shell

Shell编程 shell是命令解析器,是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序以及输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完返回输出通过shell呈现给用户。 Shell也是一门编程语言,即Shell脚本。shell是一种解释执行的脚本语言,可以直接调用Linux命令。一个系统可以存在多个shell,可以通过cat /etc...

weixin_42581821的博客 213

软考高级信息系统项目管理师系列论文之:百篇软考高级信息系统项目管理师论文范文

软考高级信息系统项目管理师系列论文之:百篇软考高级信息系统项目管理师论文范文

zhengzaifeidelushang的博客 3579

QT-Creator安装教程(windows)

本文介绍了Qt的下载安装步骤:1)通过镜像源下载安装包;2)运行exe文件时使用命令行参数指定镜像地址;3)在安装过程中选择路径和自定义安装组件,包含QT5和QT6版本的详细安装说明;4)安装后可继续添加扩展包或卸载组件。重点提示了QT6必须勾选的关键组件,并提供了组件管理的操作方法。

qq_53545309的博客 3102

Linux最全操作命令(12)——Shell编程

Shell编程 echo输出命令 语法:echo 【选项】【输出内容】 -e 支持反斜线控制的字符转换 历史命令 语法:history 【选项】【历史命令保存文件】 -c:清空历史命令 -w:把缓存中的历史命令写入历史命令保存文件 .bash.history 命令别名和常用快捷键 alias 别名=‘原命令’ 设置命令别名 alias ...

Apandam的博客 304

基于LLaMA-action模型的文档摘要任务微调

文档摘要是指从长文档中提取关键信息,生成简短而准确的总结。抽取式摘要:从原文中直接抽取关键句子或短语组成摘要。生成式摘要:通过生成新的句子来表达原文的核心内容。混合式摘要:结合抽取式和生成式方法,既保留原文的关键句子,又生成新的内容。新闻网站:自动生成新闻摘要,帮助用户快速了解新闻要点。社交媒体:为用户提供新闻摘要,便于分享和传播。学术搜索引擎:为用户提供学术文献的摘要,帮助用户快速筛选相关文献。学术写作辅助:帮助研究人员快速生成文献综述部分。企业内部文档管理:自动生成文档摘要,便于员工快速了解文档内容。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 1430

Shell中的常用命令

首次登录 Ubuntu 并打开 Shell,我们将处于用户目录,你将看到 Shell 中显示,其中 @ 前面的内容代表用户名,@ 后面的内容代表计算机名,$ 代表身份为用户,如果为 # 则代表身份为管理员,~ 代表当前正处于用户目录,如果处于其他目录,将显示相应目录路径。

vjsopmh 1463

计算机控制技术及应用

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

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Shell 脚本编程1(常用命令+概述)

本文介绍了Shell脚本编程的基础知识和常用命令。Shell作为命令解释器,将用户输入的命令翻译为机器指令执行。脚本是包含一系列命令的文本文件,可以通过编程将命令按顺序组合批量执行。文章详细说明了设置主机名、使用nmcli配置网络、echo输出、export设置环境变量、read读取输入、lscpu查看CPU信息、重定向数据流、wget下载文件、watch周期性执行命令、xargs处理命令行参数等常用命令的使用方法。此外,还介绍了Shell脚本的基本构成、注释风格、编写规范、执行方式以及echo、print

2301_80348933的博客 1104

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

shell编程的常用命令

djs的博客 234

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Linux 常用命令与 Shell 简介

Linux Shell 与常用命令摘要 Shell 是 Linux 系统的命令行接口,用户通过它输入指令与系统交互。常见 Shell 包括 Bash(默认)、Zsh 和 Fish 等。Shell 接收用户命令后传递给内核执行,并返回结果。 核心命令 man:查看命令手册(如 man ls) su/sudo:切换用户或执行特权命令(su root,sudo apt install) ls:列出目录内容(ls -l显示详情,ls -a含隐藏文件) cd/pwd:切换目录(cd ~回主目录)或显示当前路径 mkd

qq_35803412的博客 971

Shell编程常用命令

shell:简单、易用、高效,是一个内置的脚本,不需下载 什么是脚本:一条一条命令的堆积 shell是一个程序,一般都是放在/bin或者/user/bin目录下,当前Linux系统可用的Shell都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用cat命令查看它。 在现代的Linux上,sh已经被bash...

weixin_34405557的博客 164

【shell】常用命令分类

Shell 常用命令非常丰富,涵盖了文件操作、目录管理、文本处理、进程管理等多个方面。

浩瀚之水的专栏 684

Linux常用命令及bash shell脚本

目录Linux常用命令及bash shell脚本一、实验内容二、Linux常用命令2.1.ls命令详解2.2.Cat命令详解2.3.Head命令详解2.4.Tail命令详解2.5.Cut命令详解2.6.sort命令详解2.7.wc命令详解2.8.Tr命令详解2.9.Pwd命令详解2.10.rmdir命令详解三、常用编辑软件3.1.vi、vim及nano简介3.2.vim基本使用方法3.3.nano基本使用方法四、重定向及管道4.1.重定向4.2管道五、Bash shell 脚本5.1.脚本功能5.2.代码实

weixin_45148589的博客 1225

shell脚本常用命令

shell脚本常用命令(grep、cut、sort、uniq、seq、tr、basename、dirname) 1、grep 作用:过滤文本内容 选项 描述 -E :–extended–regexp 模式是扩展正则表达式(ERE) -i :–ignore–case 忽略大小写 -n: --line–number 打印行号 -o:–only–matching 只打印匹配的内容 -c:–count 只打印每个文件匹配的行数 -B:–before–context=NUM 打印匹配的前几行 -A:–after–co

weixin_47365365的博客 536

# linux shell常用命令

linux shell常用命令 $(realpath $0) Linux realpath: Find Absolute Pathname For Given Command or File 例如: Ref: https://www.cyberciti.biz/faq/linux-shell-realpath/

Chenglin(Ben) Yu's Miracle 814

linux shell 常用命令

linux 自 研 docker区间 其他待扩充

honey_babay的博客 246

Linux Shell 脚本语法以及常用命令

Linux Shell 脚本语法以及常用命令

weixin_45205160的博客 1455

SHELL常用命令

echo $xxx | awk '{if($0~/[^a-z]/) print "1" }' //如果$0全部是小写字母,则print空;DELL/IBM机器打开RAID卡电池充放电期间的Write Cache------(/bin/MegaCli -LDSetProp CachedBadBBU -LALL -aALL)if [ "$xx1" -eq "333" -a "$xx2" -eq "666" ] //如果$xx1等于333,并且$xx2等于666,-a是and的意思,同理,-o是or的意思。

chenglong411的博客 723

Mongo Shell常用命令

【代码】Mongo Shell常用命令。

denny370433768的专栏 1451
上一篇: react解决引入antd以后样式不生效问题,以及自定义样式主题
下一篇: mac brew 常用命令
iFence
博客等级 码龄9年 8051粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值