Bash基本语法

1. 变量赋值

a=375
hello=$a
这里需要注意的是,等号两边不能有空格

还有一个例子是这样的

例1:

这里写图片描述

结果为:

这里写图片描述

关于上述,主要有如下几点:

$hello和${hello}是一样的,在bash中如果遇到空格,tab键时,需要打印这些字符的话,可以用双引号进行引用“ $hello”。

例2:

这里写图片描述

1.对于变量来说,赋值为空打印出来的$hello也为空

2.如果给变量赋值为一个不存在的值,取其内容也将为空

3.如果在变量中存在空白,那么就必须加上引号;也可以通过转义空白的方式

4.unset是用来清除变量内容的

例3:

这里写图片描述

结果为:

这里写图片描述

当没有用双引号时,默认会删除变量值中多余的空格符和换行符;

例4:

这里写图片描述

结果为:

这里写图片描述

1.让变量的值自加,使用let

2.如果是替换,则使用${a/bb/23};将a中的bb替换成23

3.如果是空,则表示整数为0,所以加1后值就为1

关于位置参数:

  1. $0 : 代表脚本的名称
  2. $1 : 传递给shell脚本的第一个参数
  3. $2 : 传递给shell脚本的第二个参数
  4. $# : 命令行位置参数的个数
  5. $* : 所有的位置参数列表
  6. @*一样,都是列出所有的参数列表
  7. $! : 在后台运行的最后的工作的PID
  8. $$ : 脚本自身的PID
  9. $? : 脚本本身的退出状态,退出码为0表示命令正确执行

例5:

这里写图片描述

结果为:

这里写图片描述

在这里(IFS=’ \ ‘),它会将\替换成空格;

其中IFS特点是:IFS的默认值为:空白(包括:空格,tab, 和新行);IFS对空格的空白的处理和其他字符不一样,左右两边的纯空白会被忽略,多个连续的空白被当成一个IFS处理;

还有就是转义字符也需要注意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382728.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下 , py运用了 进程池, 将py打包成exe,出现错误的 解决思路之一

在windows上,用pycharm开发了一个小项目, 用到了from concurrent.futures import ProcessPoolExecutor 本来在pycharm里面,运行的好好地, 可是打包成exe的时候, 发现 当程序运行到 进程池执行任务的时候,会创建一个新的界面, 猜测应该是创建了一个新的进程, 百度后,发现在 程序…

关于fd和fp(fd:file descirptor fp:file pointor)

通常,我们在输入数据或输出数据的设备为键盘或者显示器。当然,我们比较熟悉的输入输出,可能就是对于文件的操作,还有直接从终端输出,显示到显示器上。在C语言中,我们使用fopen,fclose,fread,fwrite对文件进…

粗谈pragma once与 #ifndef的区别

#ifnde不受编译器的任何限制; #pragma once不受一些较老的编译器支持,兼容性不够好

在mac os10.13系统下 ,将py文件打包成可执行程序后, 里面的路径出现的问题

本来 用命令行运行py文件, 代码里面 获取当前路径的 语句 例如: os.getcwd() os.path.abspath(__file__) os.path.realpath(__file__)都可以获取到当前文件的路径, 但是打包成 可执行程序后, 统统不对了, 变成了 类似 /usr/xxx 的路径 https://stackoverflow.com/questions/50…

[linux]wait详解

wait:进程等待 主要有两种等待方式:阻塞式等待和非阻塞式等待 阻塞式等待:如果子进程正在运行,父进程将会一直等待着子进程运行结束,并且自己什么事都不干 非阻塞式等待:如果子进程正在运行,…

centos 使vim支持+python和+python3

本文为了给ycm服务,不单独存在。 查看是否支持python vim --version | grep python然后 下载vim8源码: git clone https://github.com/vim/vim.git 1 进行编译安装,添加python3和python2.7的支持: 进入下载的vim的源码文件夹中&#x…

ffmpeg的学习-00

命令行 大体样式 ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...有道翻译的 以后仔细回看 2.描述 ffmpeg是一个非常快的视频和音频转换器,也可以从一个实时音频/视频源抓取。它还可以转换之间的任意采样…

[Linux]消息队列

我们知道进程间通信的方法有多种,主要有管道,消息队列,信号量,共享内存,socket等。之前介绍过管道,今天再介绍一个新的概念–消息队列。 消息队列:将一个进程到另一个进程之间发送数据块的方式…

详解centos7 YCM YouCompleteMe自动补全安装,亲测成功

文章经重新排版转移至以下链接 https://blog.csdn.net/csdn_kou/article/details/84633663

python 异步与io

文档地址: https://docs.python.org/zh-cn/3/library/asyncio.html 以后再记录学习笔记 待续。。。

tornado 学习注意事项--00

设置url匹配的时候, (r/(.*), AMStaticFileHandler,dict(pathos.path.join(current_path, html), default_filenameindex.html))像这种语句要放到最后,因为放到前面的话, 后面的就无法匹配!

C++关键字速查手册

[TOC] https://blog.csdn.net/csdn_kou/article/details/81113215 C98关键字 C11 关键字共73个 alignas alignof用于获取取指定表达式指定的(类似sizeof,可以直接是类型名)的对齐(alignment)。alignas用于声明时指定对齐类似于现有的类型…

[Linux]信号

Linux下的信号是一个什么概念呢。我们在现实生活中也遇到过信号之类的。比如红绿信号灯,班主任叫你去办公室并且脸色不好,诸如此类的都会给你一个信号。让你辨别事情的发生。同样,Linux下也有许多的信号,让你执行相应的操作。比如…

怎么用VLC播放器将m3u8链接视频下载到本地

转载 https://blog.csdn.net/saddyyun/article/details/85245135

【1】C++面试题函数引用重载宏命名空间

函数重载的条件 • 同一个名字 • 函数名字相同 • 参数列表不同 • 同一个作用域 为什么c支持函数重载而c不支持? c函数名字的修饰规则不一样。c编译器对函数修饰规则把int的参数列表形式加了进来,从而保证底层使用不同 cAdd(int a,int b)_AddcA…

[数据结构]Map和Set

说起map和set,想必我们都学过红黑树了吧,map和set就是红黑树的一个应用领域。它的底层就是由红黑树来实现的。下面简单说一下map和set的使用吧。 首先,有一个栗子是这样的,让我们统计出每种水果出现的次数。 我们会想到怎么解决…

js获取Json对象的长度

有两种Json形式: 第一种: var json1 {"data":[{"name":"zs","age":"10"}]};对于这种格式的json数据,如果想获取data的长度,就可以用以下这种方式: var length …

生产者消费者模型(条件变量)

三种关系:互斥,同步,互斥和同步 两类角色:生产者,消费者(线程) 一个交易场所:生产者消费者共享的区域 卖苹果的模型 dish上面只有一个苹果买家必须要等卖家把苹果放到dish上才可以去买苹果。…

linux之信号

信号:在生活中,我们遇到过不同种类的信号,比如:(交通信号,乃至某个人的表情,动作等带给你不同的信号)然而,在我们的linux下,我们最熟悉的就是,当遇…

视频解析有感,在解析 iqiyi与qq视频的时候,记录一些发现

最近对iqiyi与qq视频解析发现,两个网站的解析流程,尤其是反解析措施 各有特点,简单记录一下 先说iqiyi, 浏览器模拟移动端可以拿到视频的mp4链接,这个不多说。 iqiyiPC端浏览器获取 ts过程: a.iqiyi一次性…