Shell 命令替换
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 命令替换的更多相关文章
- Shell命令替换与变量替换
命令替换 命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出.命令替换的语法: `command` 注意是反引号,不是单引号,这个键位于 Esc 键下方.下面的例子中,将命令执 ...
- 3shell命令替换
Shell 命令替换是指将命令的输出结果赋值给某个变量.比如,将使用ls命令查看到的某个目录中的内容保存到某个变量中,这就需要使用命令替换. Shell 中有两种方式可以完成命令替换,一种是反引号` ...
- 【Shell脚本学习9】Shell替换:Shell变量替换,命令替换,转义字符
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...
- Shell变量替换,命令替换,转义字符
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...
- Linux shell编程— 命令替换
有两种方法可以将命令输出赋给变量 反引号字符(`) $()格式 命令替换允许你将shell 命令的输出赋给变量 要么用一对反引号把整个命令行围起来: testing=`data` 要么使用$()格式 ...
- Linux编程 21 shell编程(环境变量,用户变量,命令替换)
一.概述 这篇介绍shell的变量使用,跟其实语言一样,都有声明变量,使用变量,在shell中变量允许你临时地将信息存储中shell脚本中,以便和脚本的其他命令一起使用. 1.1 环境变量 在前面章节 ...
- shell的命令替换和命令组合
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html Linux中使用反引号"``"(在波浪线的 ...
- Shell替换:Shell变量替换,命令替换,转义字符
如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: 复制纯文本复制 #!/bin/bash a=10 echo -e &quo ...
- Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本
Shell 命令行实现将一个站点页面全部下载到本地并替换其中链接的脚本 不知道为什么,我总想用 Shell 脚本来实现把一个站点内容给下载下来.但是下载什么站点我确不知道.今天尝试了一下利用 curl ...
随机推荐
- Android 正则表达式实例
editText正则表达式的使用 检查输入是否符合规则 import Android.app.Activity; import android.os.Bundle; import android.vi ...
- feign调用超时
Feign调用超时 feign调用超时 默认feign调用超时是1秒,断点调试是否调用成功肯定超时 feign.hystrix.enabled=true #feign调用默认是1000毫秒=1秒 ad ...
- linux命令三剑客之一sed
a(a\或者a\\):在当前行后面加入一行文本sed '/^test/a---->this is a example2' example 在test开头的行下,添加一行新的文本“----> ...
- 记一次阿里云ECS服务器图片资源迁移至 阿里云 oss
系统用户上传的图片资源放在ECS服务器,图片要做cdn加速,图片量越来越大(第一年200G,还在用户再增加图片量疯狂增长)备份是个问题. 决定迁移至 oss.前端直接上传oss 后台做签名,回调入库图 ...
- 获取上一页面url
console.log(window.location.host); #js获取当前域名 console.log(window.location.href); #js获取当前url console.l ...
- (04) springboot 下的springMVC和jsp和mybatis
1. springboot 和springmvc下的注解完全一样(新增了一些有用的) 常用的注解如下: @Controller @RestController= @Controller + @Resp ...
- 学号 2018-2019-20175212 童皓桢《Java程序设计》第5周学习总结
学号 2018-2019-20175212 <Java程序设计>第5周学习总结 教材学习内容总结 接口 声明接口: interface 名字: 接口体:接口体中只有常量无变量,只有抽象方法 ...
- sqlserver数据库 视图相关
1.首先创建一个视图 方法一:右键解决 方法二:脚本 create view view_test AS select * from t1 GO 2.删除视图 方法1:右键解决 方法2:脚本 if ex ...
- Python_Mix*生成器,生成器函数,推导式,生成器表达式
生成器: 生成器的本质就是迭代器 生成器一般由生成器函数或者生成器表达式来创建,其实就是手写的迭代器 def func(): print('abc') yield 222 #由于函数中有了yield ...
- 面向对象DAO模式
DAO模式编写数据访问层代码步骤? 1. 接口 增.删.改.查的方法 方法的返回类型为泛型集合 Int rows=select语句的条数 If(rows>0) 方法的返回类型为泛型集合 If( ...