shell基础语法

2023-11-03

1、变量

语法:变量名=变量值
PS:=两边不能有空格

1、使用变量:$变量名
ex:  Name="wendy"#声明变量
     echo $Name 或 echo ${Name}  #输出变量
ps:花括号可选
2、只读变量:readonly 变量
3、删除变量:unset 变量
4、字符串变量长度获取:${#字符串变量}
ps: string="abcd" echo ${#string}  #输出4
5、字符串变量提取部分:${变量:1:4} #表示从第二个字符开始,截取4个字符
ex:string="abcdedfg" echo ${变量:1:4} #输出bcde

 

2、变量类型

局部变量:只对当前shell有效

环境变量:所有程序都能访问环境变量

shell变量:可设置

 

3、符号问题

单引号:变量无效,任何字符原样输出

双引号:可使用变量,可以出现转义字符

ps:拼接字符串用双引号,且变量需要用{}

 

注释问题:

单行注释:#

多行注释: <<EOF 注释内容 EOF(EOF可以替换为其他任意字符)

 

4、数组

定义数组:数据名=(值1 值2 值3...值n)或数组名=(

value0

value1

value2

value3

)或 数据名[0]=value0  数据名[1]=value1

ex:array_name=(value0 value1 value2)


读取数组:${数组名[下标]}

ex:value=${数组名[n]} #@表示获取数组中的单个元素

   length=${#数组名[@ || *]}# @、*表示获取数组所有元素的长度

5、参数处理

$#  脚本后面接的参数的个数

$*  脚本后面所有参数,参数当成一个整体输出,每一个变量参数之间以空格隔开

$@  脚本后面所有参数,参数是独立的,也是全部输出

$$  脚本运行的当前进程ID号

$!  后台运行的最后一个进程的ID号

$?  上一条命令执行后返回的状态,0表示没有错误,0以外其他所有值表示有错误

6、运算符:

算数运算符: + - * / % = == !=

关系运算符:-eq -ne -gt -ge -lt -le(= != > >= < <=)

布尔运算符:! -o -a(or and)

逻辑运算符: && ||

字符串运算符:= != -z -n $(= != 判断=0为真 判断!=0为真 判断是空为真)

文件测试运算符:(-e -r -w -x -s -d -f -c -b)+文件名 文件存在且可读、可写、可执行、至少有一个字符、是目录、普通文件、字符型特殊文件、块特殊文件

7、shell函数:

[ function ] funname [()]
{
action;
[return int;]
}
或者function fun()
或者fun()
ps:参数返回,可以显示加;

8、shell 输入/输出重定向:

command > file 将输出重定向到file
command < file 将输入重定向到file
command >> file 将输出以追加的方式重定向到file
n >& m   将输出文件m和n合并
n <& m   将输入文件m和n合并
<<tag    将开始标记tag和结束tag之间的内容作为输入
/dev/null:不希望在屏幕上显示输出结果 ,重定向到垃圾箱/dev/null

 

转载于:https://www.cnblogs.com/wendyw/p/11598925.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell基础语法 的相关文章

  • 如何“grep”连续流?

    可以用吗grep在连续的流中 我的意思是有点tail f
  • Bash 完成脚本在某些参数选项后完成文件路径

    我正在为命令行工具编写 bash 完成脚本 plink local cur prev opts COMPREPLY cur COMP WORDS COMP CWORD prev COMP WORDS COMP CWORD 1 opts 1
  • 如何将文件中的值分配给 UNIX sh shell 中的变量?

    我一直在搜索这个网站 试图找到这个问题的答案 并发现了几个非常好的答案 不幸的是 它们都不适合我 这是我正在使用的脚本 VALUE cat szpfxct tmp export VALUE echo gt gt LGFILE echo te
  • 使用 cURL 从 shell 发布 4GB 文件

    我尝试将文件大小为 4GB 的文件发布到 REST API cURL 不会上传此大小的文件 而是 POST 内容长度为 0 的文件 curl v i d work large png H Transfer Encoding chunked
  • 如何在bash中仅提取两个字符串之间多行的第一个实例?

    我的文件是 abc 123 xyz abc 675 xyz 我想提取 abc 123 xyz 123 可以是任何东西 重点是我想要第一次出现 我尝试使用这个 sed n abc xyz p filename 但这给了我所有的例子 我怎样才能
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返
  • shell脚本“x$VARIABLE”中x的用途[重复]

    这个问题在这里已经有答案了 我正在查看一些 shell 脚本 comarison shcu 中 x 的用途是什么 if x USER x RUN AS USER then su RUN AS USER c CATALINA HOME bin
  • 如何剪切(1) 个驼峰字?

    Bash 中有没有一种简单的方法可以将驼峰式单词拆分为其组成词 例如 我想将 aCertainCamelCasedWord 拆分为 a certain Camel Cased Word 并能够选择我感兴趣的那些字段 当单词分隔符是下划线时
  • 此 bash 命令在 Makefile 中未正确运行

    在 Makefile 里面我有这样的 release version poetry version cut f2 d echo release version 如果我运行 我的终端中的语句将毫无问题地运行 gt version poetry
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 如何通过 shell 脚本确定网页是否存在?

    我正在尝试制作一个程序 可以将一系列漫画扫描转换为一个 pdf 文件 并且我不想尝试下载图片来确定我是否有正确的网址 是否有一个 shell 脚本命令可以用来检查网页是否存在 在 NIX 下 您可以使用curl发出一个简单的HEAD要求 H
  • Bash 脚本大小限制?

    我有一个 bash 脚本 在 RHEL 或 OS X 上运行时出现以下错误 第 62484 行 意外标记 换行符 附近出现语法错误 第 62484 行 o gz 这是一个自动生成的脚本 用于解决我公司使用的 Grid Engine 计算集群
  • 如何将设备屏幕位置转换为发送事件位置?

    我知道关于input tap x yshell 命令 但是 我想了解如何 使用执行单击sendevent命令 我能够通过以下命令实现它 sendevent dev input event5 3 53 X sendevent dev inpu
  • 在bash中,是否有相当于“错误消息”的东西

    在 perl 中 您可以使用错误消息退出die some msg bash 中是否有等效的单个命令 现在 我正在使用命令来实现这一点 echo some msg exit 1 你可以很容易地自己推出 die echo 1 gt 2 exit
  • 如何使用我在 github 中发布的 bash 脚本执行 chsh?

    我有一个要点 我总是用它来在新服务器上安装我需要的软件包 http gist github com 4372049 http gist github com 4372049 我需要做的就是通过 ssh 在新服务器中输入以下内容 bash c
  • 将文件从不同目录复制到公共目录

    我有很多目录 其中包含 c文件 我想复制全部 c使用 shell 脚本将不同目录中的文件复制到单个目录 find name c exec cp t tmp 启动当前目录中的所有项目 递归 获取名称结尾的项目 c 将这些项目复制到 tmp 如
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while
  • 通过powershell运行ADB命令

    所以我尝试通过 powershell 脚本运行一些 ADB 命令 这是我正在尝试做的一个简单示例 adb shell echo in adb shell su root echo you are now root ls cd data da
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud

随机推荐

  • 阿里云服务器ECS带宽计费模式租用价格表

    阿里云服务器ECS公网带宽地域不同价格不同 以北京地域为例1M带宽一个月价格是23元 M 月 按流量计费价格是1GB流量0 8元 带宽值达到6M后 超过5M的部分带宽单价上涨到80元 M 月 中国香港地域带宽1M带宽30元一个月 按流量计费
  • 加州房价预测项目详细笔记(Regression)——(2)采样(数据分割)<重要>

    参考内容 机器学习实战 原作者github https github com ageron handson ml 加州房价预测项目精细解释https blog csdn net jiaoyangwm article details 8167
  • html改变按钮水平位置,div中button水平居中

    CSS如何让一个按钮居中应该怎么做 通过这样的Css样式就可以实现 使用margin left auto margin right auto 可以让你的div居中对齐 style margin left auto margin right
  • Spring Boot中使用thymeleaf以及各种取值,判断,选择,截取等方式

    Spring Boot中使用thymeleaf Spring Boot支持FreeMarker Groovy Thymeleaf和Mustache四种模板解析引擎 官方推荐使用Thymeleaf spring boot starter th
  • 100决杀

    1 所有的困苦都是有用意的 这是老天爷在磨练你 为了把重任交给你 2 毛遂自荐 好处多多 让别人看到你 知道你的存在 知道你的能力 3 千万别入错行 人情有牵绊 恩怨的纠葛 转行可不是那幺容易的呀 4 别轻易转行 转行的风险很林 若无大决心
  • MATLAB代码:微电网两阶段鲁棒优化经济调度程序 关键词:微网优化调度 两阶段鲁棒 CCG算法 经济调度

    MATLAB代码 微电网两阶段鲁棒优化经济调度程序 关键词 微网优化调度 两阶段鲁棒 CCG算法 经济调度 仿真平台 MATLAB YALMIP CPLEX 主要内容 构建了微网两阶段鲁棒调度模型 建立了min max min 结构的两阶段
  • STM32学习笔记:串口一键下载电路(CH340)的理解

    如图 为原子的串口下载电路 在CH340的数据手册上有引脚的介绍以及作用 这两个引脚 DTR 和RTS 都是 输出类型 MCUISP 一键下载工具 会控制CH340这两个引脚的高低电平状态 通过控制DTR 和RST 这两个引脚的高低电平状态
  • 897. 最长公共子序列 线性dp

    给定两个长度分别为 N 和 M 的字符串 A 和 B 求既是 A 的子序列又是 B 的子序列的字符串长度最长是多少 输入格式 第一行包含两个整数 N 和 M 第二行包含一个长度为 N 的字符串 表示字符串 A 第三行包含一个长度为 M 的字
  • 计算机键盘换挡键,电脑键盘上的换挡键是哪个

    Esc 退出键 英文Escape 的缩写 中文意思是逃脱 出口等 在电脑的应用中主要的作用是退出某个程序 例如 我们在玩游戏的时候想退出来 就按一下这个键 Tab 表格键 可能大家比较少用这一个键 它是Table的缩写 中文意思是表格 在电
  • windows nignx 常用操作命令(启动、停止、重启服务)

    文章目录 1 查看nginx 版本号 2 根据名称查询 window 下的nginx 的启动进程 3 再根据端口号查询进程 4 启动nginx 命令 5 停止nginx 6 快速停止或关闭Nginx 7 正常停止或关闭Nginx 8 配置文
  • Open3D Ransac拟合分割多个球体

    目录 一 算法原理 二 代码实现 三 结果展示 四 测试数据 一 算法原理 算法的核心原理还是RANSAC拟合球面 具体理论可参考 Open3D RANSAC三维点云球面拟合 只是对代码稍加修改使其适用于分割点云数据中的多个球体 二 代码实
  • 回归平方和 ESS,残差平方和 RSS,总体平方和 TSS

    https zhidao baidu com question 565190261749684764 html 回归平方和 ESS 残差平方和 RSS 总体平方和 TSS 总变差 TSS 被解释变量Y的观测值与其平均值的离差平方和 总平方和
  • 5.12 数据结构——哈夫曼编码

    在远程通讯中 要将待传字符转换成二进制的字符串 假设要传输的字符为 ABACCDA 若编码为 A 00 B 01 C 10 D 11 那么要传输的字符的编码为 00010010101100 若将编码设计为长度不等的二进制编码 即让待传字符串
  • 基于深度学习的人脸表情识别(一)

    第一篇博客就不用Markdown 什么鬼 来写了 今天主要是被老板一通说 然后说两月看10篇paper 算了 还是丫丫自己先多码码论文吧 再加之这几天有开博的想法 就索性一起开了 顺道总结下最近看的一篇中文的 Facial Expressi
  • 【CPU】常见术语解释

    interrupt service routine ISR 中断服务程序 中断 指当CPU正在处理某件事情时 外部发生的某一事件 如一个电平的变化 一个脉冲沿的发生或 定时器计数溢出等 请求CPU迅速去处理 于是CPU暂时中止当前的工作 转
  • 【机器学习基础】Python机器学习入门指南(全)

    前言 机器学习 作为人工智能领域的核心组成 是计算机程序学习数据经验以优化自身算法 并产生相应的 智能化的 建议与决策的过程 一个经典的机器学习的定义是 A computer program is said to learn from ex
  • 计算机转换汉子英语,中英文切换(电脑怎么切换拼音打字)

    在打字时需要输入英文怎么切换 用搜狗等各类拼音法的话 不用切换就可自由地 中英 非常简单 没有人不知道吧 方法是 汉字状态时 按回车键就是英文字母 此时按空格键是汉字 谁能告诉我小键盘旁边 也就是全角和半角的旁边的中文和英文符号 切换的 c
  • vue-element-admin/template登录Request failed with status code 405

    问题 vue element admin vue admin template 登录不上 报错Request failed with status code 405 解决 main js的开发配置production修改为开发模式 deve
  • opencv 识别长方形_使用OpenCV检测图像中的矩形

    本文实例为大家分享了OpenCV检测图像中矩形的具体代码 供大家参考 具体内容如下 前言 1 OpenCV没有内置的矩形检测的函数 如果想检测矩形 要自己去实现 2 我这里使用的OpenCV版本是3 30 矩形检测 1 得到原始图像之后 代
  • shell基础语法

    1 变量 语法 变量名 变量值 PS 两边不能有空格 1 使用变量 变量名 ex Name wendy 声明变量 echo Name 或 echo Name 输出变量 ps 花括号可选 2 只读变量 readonly 变量 3 删除变量 u