所谓命令替换,是把命令执行后的标准输出放入变量中。这是一个十分有威力的功能。例如说,

想查看工作目录中所有的文件名,可执行ls命令,但如何把这些文件名存入变量中,供往后的程序代码再利用呢?

使用命令替换,轻轻松松就可以做到这点。在Script设计中,运用这项功能的比重相当高。

命令替换的语法有以下两种:

  • 新式写法:变量名称=$(命令)   #强烈建议采用新式的写法
  • 旧式写法:变量名称=`命令`

注意,上式是使用一对“`”(在键盘的左上角)符号含括住命令,而不是用单引号!

Bash会把执行命令后产生的标准输出,赋值给指定的变量。在这个过程中,默认会自动删除换行字符。例如:

DIRS=$(ls)

DIRS的变量值,即含有工作目录中所有文件的名称列表。

取得命令替换的值后,可把它放在for循环中,一一加以处理,如以下程序区块:

DIRS=$(ls)
for f in $DIRS
doecho $f
done

命令替换中,可以包含两个或两个以上的指令,如以下范例,可取得上层目录名称:

PDIR=$(cd ..; pwd)

这里有两道指令:cd .. 和 pwd,中间用;隔开,命令替换的值是最后一道指令执行的结果。

在命令替换里,也可以再包含其他命令替换。例如:

r=$(du -s $(pwd)) # 取得工作目录磁盘用量的总和

来源:http://blog.snsgou.com/post-764.html

Shell入门教程:命令替换 $() 和 ``相关推荐

  1. Spark Shell入门教程

    教程目录 0x00 教程内容 0x01 Spark Shell 操作 1. 启动与关闭 Spark Shell 2. 使用 Spark Shell 进行 Scala 编程 0x02 测试词频统计案例 ...

  2. Shell入门教程[1]

    Shell 环境 第一个shell脚本: 运行 Shell 脚本有两种方法: Shell 变量 定义变量 使用变量 只读变量 删除变量 变量类型 Shell 字符串 单引号 双引号 拼接字符串 获取字 ...

  3. Fish shell 入门教程

    命令行是程序员的必备技能.图形界面虽然好看,解决问题还是要靠命令行. 命令行由 Shell 提供.各种命令通过 Shell,传递给操作系统的内核.学习命令行就是在学习 Shell. Shell 有好几 ...

  4. linux入门教程命令,Linux入门命令掌握

    Linux文件系统介绍:一切都是文本 后缀名没用 只是方便区分文件的作用 /为根目录 /bin    包含了用户命令文件,也就是shell /boot  包含了系统启动过程中所需要的所有内容 /dev ...

  5. Shell入门教程:算术运算

    Bash的算术运算有以下几种方法: 序号 名称 语法 范例 1 算术扩展 $((算术式)) r=$((2+5*8)) 2 使用外部程序 expr 算术式 r=`expr 4 + 5` 3 使用 $[] ...

  6. 第2关:Hive Shell入门基础命令

    Hive Shell运行在Hadoop集群环境上,是Hive提供的命令行接口(CLI),在Hive提示符输入HiveQL命令,Hive Shell把HQL查询转换为一系列MapReduce作业对任务进 ...

  7. Shell入门教程:Shell函数详解

    Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 ...

  8. 3DMAX入门教程 | 命令面板 标准基本体的创建和参数

    今天给大家介绍一下在3DMAX命令面板中,标准基本体的创建和参数. 在视口的右侧就是命令面板,加号代表创建一些图形或者是模型.今天我们主要讲解标准基本体的创建和参数,我们可以单击创建,选择图形,它的默 ...

  9. c语言程序的命令行输入输出,C语言入门教程-命令行参数

    命令行参数 在C中,获取用户输入的命令行参数是很方便的.程序的主函数会接受一个argv参数.有许多高级的库函数都会用到argv结构,所以了解此结构对一个C程序员来说将是很有用的. 请录入并编译下面的程 ...

最新文章

  1. eScan Internet Security Suite 2006
  2. 【 FPGA 】控制数码管动态扫描显示的小实验
  3. Flutter开发之图片加载(九)
  4. VMware View Composer 虚拟机映像管理
  5. 垃圾热解气化工艺的电气、仪表及控制系统设计
  6. 每天一道LeetCode-----合并两个/多个有序链表为一个新链表
  7. spark RDD创建方式:parallelize,makeRDD,textFile
  8. Java刷漆问题代码_Java实现蓝桥杯历届试题格子刷油漆
  9. 我是程序员,我用这种方式铭记历史
  10. 20170917软件工程师在线笔试之员工幸福感问题
  11. matlab对多项式求导的命令,matlab多项式求导
  12. 计算机开机加载后进入不了xp,xp电脑开机后进不了系统怎么办
  13. [转载]STED和STORM、PALM
  14. 【办公-WORD】Word 背景颜色层次分析
  15. Java基础入门及安装准备
  16. 鲁大师怎么查看cpu风扇转速|用鲁大师查看cpu风扇转速的方法
  17. 爱普生Epson LQ-735KII 打印机驱动
  18. 第十二章 齐桓公不计前嫌用良才 管夷吾庙堂陈谋论国是
  19. 升级sp3后出现:一个问题阻止windows正确检测此机器许可证--解决方案
  20. CentOs解决下载速度慢 更换下载源

热门文章

  1. 暑期训练日志----2018.8.20
  2. 理论基础 —— 索引 —— 分块索引
  3. 小玉家的电费(洛谷-P1422)
  4. 信息学奥赛C++语言:语文成绩
  5. rust投递箱连接箱子_一种用于防盗的牛奶投递箱的制作方法
  6. MySQL兼容服务器_服务器不支持 MySql 数据库的解决方法
  7. cdr图片随意拉伸变形_如何操作才能使照片拉伸不变形
  8. “dedeCMS 提示信息!”跳转页,如何修改文字?
  9. 网页空间 - 概念篇
  10. CSS3动画 - title下划线的拉伸效果