我的编程空间,编程开发者的网络收藏夹
学习永远不晚

linux shell将变量拼接到命令中

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

linux shell将变量拼接到命令中

目录
  • linux拼接字符串
  • 命令行里拼接字符串
  • 我碰到的问题
  • 单引号的一些注意的地方

有这个一个场景:需要写多个定时任务提交到yarn,这些任务都是同一时间启动的。原先的做法是,所有的启动命令都使用linux的crontab,但是因为任务过多,所以crontab里的内容越来越多,不好管理,改时间也不方便,所以这里写脚本进行管理。

同时为了方便查看任务,每个任务的名字,将当前时间的时分拼接到yarn的任务的name上。

linux拼接字符串

这个就涉及到了linux获取当前时间和拼接字符串的问题了。本人不是主攻这个方向,所以就是边百度边写,获取时间:

time1=$(date  "+%Y_%m_%d-%H_%M")
echo $time1

linux拼接字符串的规则:

#!/bin/bash
name="Shell"
url="http://c.biancheng.net/shell/"
str1=$name$url  #中间不能有空格
str2="$name $url"  #如果被双引号包围,那么中间可以有空格
str3=$name": "$url  #中间可以出现别的字符串
str4="$name: $url"  #这样写也可以
str5="${name}Script: ${url}index.html"  #这个时候需要给变量名加上大括号
echo $str1
echo $str2
echo $str3
echo $str4
echo $str5

运行结果:

Shellhttp://c.biancheng.net/shell/
Shell http://c.biancheng.net/shell/
Shell: http://c.biancheng.net/shell/
Shell: http://c.biancheng.net/shell/
ShellScript: http://c.biancheng.net/shell/index.html

对于第 7 行代码,$name 和 $url 之间之所以不能出现空格,是因为当字符串不被任何一种引号包围时,遇到空格就认为字符串结束了,空格后边的内容会作为其他变量或者命令解析。

命令行里拼接字符串

获取到date了,拼接进命令行就行。

这里先举个其他例子:

name="abc"
touch /home/$name

这样等同于 touch /home/abc。

如果涉及到拼接的字符串前后都还有内容:

name="abc"
touch /home/${name}123

这样等同于 touch /home/abc123。

我碰到的问题

 time1=$(date  "+%Y_%m_%d-%H_%M")
 ... "name":"abc${time1}" ...

但是执行以后去yarn的ui去看,任务名字不是我想像的前缀加时间,而是abc${time1},非常郁闷,想不通,开始找哪里出问题了。

最后发现,问题出在了引号上。

name那条语句,是被单引号括起来的,shell脚本中,在单引号里,变量是不被替换的,问题出在这里了。那么如何解决呢?

 time1=$(date  "+%Y_%m_%d-%H_%M")
' ... "name":"abc'${time1}'" ...'

把变量排除在单引号之外即可。

单引号的一些注意的地方

在单引号中的任何字符都会原样输出,单引号字符串中的变量是无效的。

#!/bin/bash

name="abc"
echo '123 $name' 
echo '在单引号中使用\"$name\"也是没有用的哦'

输出:

123 $name

在单引号中使用\"$name\"也是没有用的哦

顺便说一下,shell脚本中字符串可以使用双引号、单引号、不使用引号来定义。在不使用引号的情况下字符串中间不可以有空格。

#!/bin/bash
a="aaa";
b='bbb';
c=ccc
echo $a
echo $b
echo $c

执行脚本输出:

aaa
bbb
ccc

到此这篇关于linux shell将变量拼接到命令中的文章就介绍到这了,更多相关linux shell变量拼接内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

linux shell将变量拼接到命令中

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

linux shell将变量拼接到命令中

目录linux拼接字符串命令行里拼接字符串我碰到的问题单引号的一些注意的地方有这个一个场景:需要写多个定时任务提交到yarn,这些任务都是同一时间启动的。原先的做法是,所有的启动命令都使用linux的crontab,但是因为任务过多,所以c
2023-05-06

linuxshell将变量拼接到命令中

本文主要介绍了linuxshell将变量拼接到命令中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-19

shell中怎么将命令结果赋值给变量

在Shell中,可以通过使用反引号或`$()`将命令的结果赋值给变量。在使用反引号时,可以将命令放置在反引号(`)之间。例如:```result=`command````或者,可以使用$()来执行同样的操作:```result=$(comm
2023-09-16

Linux Shell字符串变量拼接与赋值的使用

目录1.字符串拼接2.定义值为双引号或单引号的字符串3.在单引号和双引号字符串中取变量值最近在工作用到shell脚本,用到了字符串变量的拼接,同时需要对字符串进行赋值,这里与大家分享一下, 1.字符串拼接 shell脚本里面可以对字符串进行
2023-05-06

linux系统下如何将php和mysql命令加入到环境变量中

本篇内容主要讲解“linux系统下如何将php和mysql命令加入到环境变量中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux系统下如何将php和mysql命令加入到环境变量中”吧!方法
2023-06-13

【Linux】Linux环境变量的理解 --- 命令行参数、shell子进程、环境变量、本地变量…

加油布鲁斯,你能行的! 文章目录 一、环境变量PATH中的系统默认搜索路径1.将程序安装到/usr/bin目录(不带./运行自己写的程序)2.将程序路径添加到PATH环境变量里面(不带./运行自己写的程序) 二、环境变量的深度
2023-08-25

Linux下shell脚本字符串变量拼接与赋值的方法

本篇内容介绍了“Linux下shell脚本字符串变量拼接与赋值的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.字符串拼接shell脚
2023-06-28

Shell中变量作用域的介绍与使用命令

前言 众所周知Shell 中的变量只作用于当前进程。如需在子进程中创建副本可使用 export 内建命令。 有时使用临时变量语法可以非常方便。 变量使用任何地方都可以定义 Shell 变量,使用 = 分隔变量名和变量值。= 前后不可出现空格
2022-06-04

Linux系统中如何将Linux命令放到后台运行

这篇文章主要介绍了Linux系统中如何将Linux命令放到后台运行,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。“命令 &”,把命令放入后台执行第一种把命令放入后台的方法是在
2023-06-28

linux find命令将查找到的文件批量删除方法

目录linux find命令将查找到的文件批量删除Linux中find三种删除方式,常用于crontab定时任务和shell脚本0、按文件类型查找1、按文件名查找2、按文件时间属性查找3、按指定目录深度查找4、排除指定子目录查找5、按文件大
2022-12-08

如何将Linux终端中命令输出保存到文件中

这篇文章主要介绍了如何将Linux终端中命令输出保存到文件中的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何将Linux终端中命令输出保存到文件中文章都会有所收获,下面我们一起来看看吧。方法 1:使用重定向将
2023-06-28

怎么将Linux 终端中命令的输出保存到文件中

小编给大家分享一下怎么将Linux 终端中命令的输出保存到文件中,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!方法 1:使用重定向将命令输出保存到文件中你可以在 Linux 中使用重定向来达成目的。使用重定向操作符,它会将
2023-06-15

怎么在Linux命令行中将ISO和NRG镜像刻录到DVD中

本篇文章为大家展示了怎么在Linux命令行中将ISO和NRG镜像刻录到DVD中,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Linux系统Linux是一种免费使用和自由传播的类UNIX操作系统
2023-06-07

Linux中如何将执行过的命令记录到日志并发送到服务器

这篇文章主要介绍“Linux中如何将执行过的命令记录到日志并发送到服务器”,在日常操作中,相信很多人在Linux中如何将执行过的命令记录到日志并发送到服务器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Lin
2023-06-12

在linux shell脚本中root切换到普通用户执行脚本或命令的方法

需求: 安装deb包,设置程序安装后启动,不需要root权限启动程序 | 不能用root权限启动 其他开机启动选项 方法:root临时降低权限 secUser=`who am i | awk '{print $1}'` #echo
2022-06-04

linux中shell脚本实现root切换到普通用户执行脚本或命令的示例分析

这篇文章将为大家详细讲解有关linux中shell脚本实现root切换到普通用户执行脚本或命令的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需求:安装deb包,设置程序安装后启动,不需要root
2023-06-09

编程热搜

目录