1、命令替换,有两种方式

  方式一:`command`

  方式二:$(command)

2、应用场景

  在命令中通过命令替换的方式,将某些子命令的结果嵌入到当前命令中。

3、举例

  例1: 获取系统所用用户并输出。

// 命令形式
cat /etc/passwd | cut -d ":" -f
#!bin/bash
# 命令替换, bash脚本形式 index= for user in `cat /etc/passwd | cut -d ":" -f `
do
echo "This is $index user: $user"
index=$(($index + ))
done

  例2: 根据系统时间输出今年或者明年的年份

$ date
输出:2019年 03月 24日 星期日 :: CST $ date +%Y
输出: $ echo "This is $(($(date +%Y) + 1)) year"
输出:This is year

  例3: 根据系统时间获取今年过去多少个星期,还剩下多少个星期?

#!bin/bash

days=$(date +%j)

# 获取日期的第一位,如果是0.则必须处理掉,否则不能参加运算
index0=${days:0:1}

# 如果日期第一位为0,例如083,则删掉掉0
if [ $index0 == "0" ]
then
days=${days:1}
fi

echo "今年过去 $days 天"
echo "今年过去 $(($days / 7)) 个星期"

echo "今年还剩下 $((365 - $days)) 天"
echo "今年还剩下 $(((365 - $days) / 7))" 个星期

  例4:判断 nginx 进程是否启动,如果没启动,则启动

#!bin/bash

# 判断 ngnix进程是否启动,如果没有启动,则启动

# grep -v grep 是过滤掉grep nginx这个进程
# wc -l 是统计输出多少行
nginx_process_num=$(ps -ef | grep nginx | grep -v grep | wc -l) if [ $nginx_process_num -eq ]; then
systemctl start nginx
fi

总结:` ` 和 $() 是等价的,初学者推荐使用 $()。缺点是 有极少数的 unix 不支持 $(),但都支持 ` `

  $(()) 主要用来做整数运算,包括加减乘除,引用变量前可以加 $,也可以不加 $,比如:

  num1=100, num2=10

  echo $(($num1 + $num2))  等价于 echo $((num1 + num2))     // 这也证明了 shell 语法是不规范的

  ((num1++))  ((num--))  可以实现自增和自减

Shell 命令替换的更多相关文章

  1. Shell命令替换与变量替换

    命令替换 命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出.命令替换的语法: `command` 注意是反引号,不是单引号,这个键位于 Esc 键下方.下面的例子中,将命令执 ...

  2. 3shell命令替换

    Shell 命令替换是指将命令的输出结果赋值给某个变量.比如,将使用ls命令查看到的某个目录中的内容保存到某个变量中,这就需要使用命令替换. Shell 中有两种方式可以完成命令替换,一种是反引号` ...

  3. 【Shell脚本学习9】Shell替换:Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...

  4. Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...

  5. Linux shell编程— 命令替换

    有两种方法可以将命令输出赋给变量 反引号字符(`) $()格式 命令替换允许你将shell 命令的输出赋给变量 要么用一对反引号把整个命令行围起来: testing=`data` 要么使用$()格式 ...

  6. Linux编程 21 shell编程(环境变量,用户变量,命令替换)

    一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节 ...

  7. shell的命令替换和命令组合

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html Linux中使用反引号"``"(在波浪线的 ...

  8. Shell替换:Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: 复制纯文本复制 #!/bin/bash a=10 echo -e &quo ...

  9. Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本

    Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本 不知道为什么,我总想用 Shell 脚本来实现把一个站点内容给下载下来.但是下载什么站点我确不知道.今天尝试了一下利用 curl ...

随机推荐

  1. vue中前端处理token过期的方法与axios请求拦截处理

    在处理token过期的这个问题上困扰了我很久,现在终于解决的了,所以分享出来给大家,希望能够对大家有所帮助. 首先,当然是路由进行拦截,路由拦截当然是在beforeEach中了: router.bef ...

  2. shiro框架-配置

    才开始学没有什么理解分享一个博客写的比较详细  借鉴大佬的:https://www.cnblogs.com/maofa/p/6407102.html@阿发仔 https://blog.csdn.net ...

  3. Codeforces 741 D - Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

    D - Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 思路: 树上启发式合并 从根节点出发到每个位置的每个字符的奇偶性记为每个位 ...

  4. jmeter实践之数据库参数传递

    一.需求: 1.业务需求:根据手机号到数据库中查看用户id,再根据用户id查看该注册用户下关联的健康成员. 2.参数化分析 1)需要根据不同的手机号进行查询,所以手机号需要进行参数化 2)用户id要作 ...

  5. hadoop之数据压缩与数据格式

    * 注:本文原创,转载请注明出处,本人保留对未注明出处行为的责任追究. a.数据压缩 优点: 1.节省本地空间 2.节省带宽 缺点: 花时间 1.MR中允许进行数据压缩的地方有三个: 1)input起 ...

  6. 2018-2019-2 网络对抗技术 20165303 Exp1 PC平台逆向破解(BOF实验)

    1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...

  7. node中 path.resolve 和path.join的区别

    path.resolve('a','b','c') 返回a/b/c path.resolve理论上总是以前一个路径作为基础路径,然后匹配当前路径,当前路径会有三种情况根目录(/),当前目录(./),上 ...

  8. Robin Hood CodeForces - 672D (二分)

    大意: 给定数组$a$, 每次操作使最大元素减小1最小元素增大1, 求k次操作后最大值与最小值的差. 二分出k次操作后最大值的最小值以及最小值的最大值, 若和能平分答案即为$max(0,R-L)$, ...

  9. vue手把手教你实现走马灯商品左右轮播图

    <template> <div> <div class="back_add"> <div class="threeImg&quo ...

  10. PAT 1116 Come on! Let's C

    1116 Come on! Let's C (20 分)   "Let's C" is a popular and fun programming contest hosted b ...