美文网首页
命令替换 &命令组合

命令替换 &命令组合

作者: mysimplebook | 来源:发表于2019-11-19 08:55 被阅读0次

在 bash shell 脚本编程中中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的,命令替换是指shell可以先执行命令,将输出结果暂时保存(赋给变量),以后在适当的地方输出。

命令替换

其中$()方法被称为子shell,子shell 本身就是独立的进程,可以使用()操作符来定义一个子shell。当命令在子shell 中执行时,不会对当前shell 有任何影响;所有的改变仅限于子shell 内,如

[root@localhost ~]# pwd

/root

[root@localhost ~]# (cd /test/;ls)

book           fastjson-1.2.59.jar  jar        jdk       META-INF                    php        Book            flask                java       locatgit mongodb-linux-x86_64-3.0.6 __pycache__  redis.tar.gz                 sun

  interfacesrc         java_code  log.txt                          rest-assured-4.0.0-deps      test

com1           io                   javax      maven    org                        python3     rest-assured-4.0.0-deps.zip

[root@localhost ~]# pwd

/root

[root@localhost ~]#

而 $( ) 并不见得每一种 shell 都能使用,若你用 bash2 的话,肯定没问题。

       反引号``,是另外一种命令替换命令。作用是将一个命令结果赋值给一个变量。

[root@localhost ~]# ls

anaconda-ks.cfg assure base.txt block.py block.pyc bookdfs.py downm.asp?id=43898 id_rsa id_rsa.pub java.txt javavsphp jenkins [root@localhost~]#

[root@localhost ~]# dirlist=`ls`  

[root@localhost ~]# echo $dirlist

anaconda-ks.cfg assure base.txt block.py block.pyc bookdfs.py downm.asp?id=43898 id_rsa id_rsa.pub java.txt javavsphp jenkins

[root@localhost ~]#

命令组合

语法格式如下:

(command1;command2[;command3...])

1. 一条命令需要独占一个物理行,如果需要将多条命令放在同一行,命令之间使用命令分隔符(;)分隔。执行的效果等同于多个独立的命令单独执行的效果。

2. () 表示在当前 shell 中将多个命令作为一个整体执行。需要注意的是,使用 () 括起来的命令在执行前面都不会切换当前工作目录,也就是说命令组合都是在当前工作目录下被执行的,尽管命令中有切换目录的命令。

3. 命令组合常和命令执行控制结合起来使用。

[root@importer1~]# array=("acqD" "innport" "innScan""Outport" "OutScan" "sdD" "Spam");

[root@importer1~]# echo "${array[@]}" | grep -wq "out" &&  echo "arg is right" || ( echo"arg is wrong"; exit 11);

arg iswrong

[root@importer1~]# echo $?

11

RPvG���

相关文章

  • 命令替换 &命令组合

    在 bash shell 脚本编程中中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command s...

  • Shell 括号总结

    1. 单小括号() I. 命令替换,等同于`command` II. 子shell命令组合(command1; c...

  • Linux bash shell中``与${ }的区别

    一、命令替换 在bash中,$( )与(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行...

  • 变量替换_转义_命令替换-2

    转义 变量替换 示例: 命令替换 在赋值语句中,让命令还是命令

  • $(( ))、$( )、``与${ }的区别

    命令替换在bash中,$( )与(反引号)都是用来作命令替换的。命令替换与变量替换差不多,都是用来重组命令行的,先...

  • Vim 常用的操作

    1、插入命令 2、定位命令 3、删除命令 4、复制和剪切命令 5、替换和取消命令 6、搜索和搜索替换命令 7、保存...

  • 关于Vim

    插入命令 关于行 删除命令 复制和剪切命令 替换和取消命令 搜索和搜索替换命令 保存和退出命令 vim使用技巧 进...

  • 临时随笔sed/awk

    sed替换指定行内容 sed 命令行格式 脚本格式 基本操作命令 行定位 操作命令 实例 替换命令 高级操作命令 ...

  • Linux—shell中$(( ))、$( )、``与${ }的

    命令替换 命令替换**与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成...

  • VIM

    插入命令 定位命令 删除命令 替换的取消命令 常用快捷键

网友评论

      本文标题:命令替换 &命令组合

      本文链接:https://www.haomeiwen.com/subject/ymaiictx.html