最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux shell將變量拼接到命令中

 更新時(shí)間:2023年05月06日 09:28:22   作者:慢點(diǎn)走  
本文主要介紹了linux shell將變量拼接到命令中,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

有這個(gè)一個(gè)場(chǎng)景:需要寫(xiě)多個(gè)定時(shí)任務(wù)提交到y(tǒng)arn,這些任務(wù)都是同一時(shí)間啟動(dòng)的。原先的做法是,所有的啟動(dòng)命令都使用linux的crontab,但是因?yàn)槿蝿?wù)過(guò)多,所以crontab里的內(nèi)容越來(lái)越多,不好管理,改時(shí)間也不方便,所以這里寫(xiě)腳本進(jìn)行管理。

同時(shí)為了方便查看任務(wù),每個(gè)任務(wù)的名字,將當(dāng)前時(shí)間的時(shí)分拼接到y(tǒng)arn的任務(wù)的name上。

linux拼接字符串

這個(gè)就涉及到了linux獲取當(dāng)前時(shí)間和拼接字符串的問(wèn)題了。本人不是主攻這個(gè)方向,所以就是邊百度邊寫(xiě),獲取時(shí)間:

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

linux拼接字符串的規(guī)則:

#!/bin/bash
name="Shell"
url="http://c.biancheng.net/shell/"
str1=$name$url  #中間不能有空格
str2="$name $url"  #如果被雙引號(hào)包圍,那么中間可以有空格
str3=$name": "$url  #中間可以出現(xiàn)別的字符串
str4="$name: $url"  #這樣寫(xiě)也可以
str5="${name}Script: ${url}index.html"  #這個(gè)時(shí)候需要給變量名加上大括號(hào)
echo $str1
echo $str2
echo $str3
echo $str4
echo $str5

運(yùn)行結(jié)果:

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

對(duì)于第 7 行代碼,$name 和 $url 之間之所以不能出現(xiàn)空格,是因?yàn)楫?dāng)字符串不被任何一種引號(hào)包圍時(shí),遇到空格就認(rèn)為字符串結(jié)束了,空格后邊的內(nèi)容會(huì)作為其他變量或者命令解析。

命令行里拼接字符串

獲取到date了,拼接進(jìn)命令行就行。

這里先舉個(gè)其他例子:

name="abc"
touch /home/$name

這樣等同于 touch /home/abc。

如果涉及到拼接的字符串前后都還有內(nèi)容:

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

這樣等同于 touch /home/abc123。

我碰到的問(wèn)題

按理說(shuō)萬(wàn)事俱備,只欠東風(fēng)。我將命令寫(xiě)成了:

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

但是執(zhí)行以后去yarn的ui去看,任務(wù)名字不是我想像的前綴加時(shí)間,而是abc${time1},非常郁悶,想不通,開(kāi)始找哪里出問(wèn)題了。

最后發(fā)現(xiàn),問(wèn)題出在了引號(hào)上。

name那條語(yǔ)句,是被單引號(hào)括起來(lái)的,shell腳本中,在單引號(hào)里,變量是不被替換的,問(wèn)題出在這里了。那么如何解決呢?

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

把變量排除在單引號(hào)之外即可。

單引號(hào)的一些注意的地方

在單引號(hào)中的任何字符都會(huì)原樣輸出,單引號(hào)字符串中的變量是無(wú)效的。

#!/bin/bash

name="abc"
echo '123 $name' 
echo '在單引號(hào)中使用\"$name\"也是沒(méi)有用的哦'

輸出:

123 $name

在單引號(hào)中使用\"$name\"也是沒(méi)有用的哦

順便說(shuō)一下,shell腳本中字符串可以使用雙引號(hào)、單引號(hào)、不使用引號(hào)來(lái)定義。在不使用引號(hào)的情況下字符串中間不可以有空格。

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

執(zhí)行腳本輸出:

aaa
bbb
ccc

到此這篇關(guān)于linux shell將變量拼接到命令中的文章就介紹到這了,更多相關(guān)linux shell變量拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux shell在while中用read從鍵盤(pán)輸入的實(shí)現(xiàn)

    linux shell在while中用read從鍵盤(pán)輸入的實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇linux shell在while中用read從鍵盤(pán)輸入的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • 神奇的shell命令行輸入與輸出功能介紹

    神奇的shell命令行輸入與輸出功能介紹

    命令行還是比較常用的,于是我研究了一下shell命令行,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用
    2013-02-02
  • shell向文件中添加新內(nèi)容的實(shí)現(xiàn)方法

    shell向文件中添加新內(nèi)容的實(shí)現(xiàn)方法

    Shell腳本是一種為shell編寫(xiě)的腳本程序,下面這篇文章主要給大家介紹了關(guān)于shell向文件中添加新內(nèi)容的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2023-06-06
  • linux虛擬機(jī)上安裝配置redis3.0.7

    linux虛擬機(jī)上安裝配置redis3.0.7

    本篇內(nèi)容給大家介紹在linux虛擬機(jī)上安裝redis3.0.7這個(gè)版本的過(guò)程以及相關(guān)的配置問(wèn)題。
    2017-11-11
  • Linux命令sed(流編輯器)的用法詳解

    Linux命令sed(流編輯器)的用法詳解

    sed編輯器要比交互式編輯器快得多,可以快速完成對(duì)數(shù)據(jù)的自動(dòng)修改,比如:替換,這篇文章主要介紹了Linux命令sed(流編輯器)使用/實(shí)例,需要的朋友可以參考下
    2022-09-09
  • shell語(yǔ)言date的用法實(shí)例

    shell語(yǔ)言date的用法實(shí)例

    這篇文章主要介紹了shell語(yǔ)言關(guān)于date的一些用法,幫助大家更好的理解和學(xué)習(xí)shell語(yǔ)言,感興趣的朋友可以了解下
    2020-11-11
  • Centos下查看網(wǎng)卡的實(shí)時(shí)流量命令

    Centos下查看網(wǎng)卡的實(shí)時(shí)流量命令

    本文介紹了linux下查看網(wǎng)卡流量的六種方法,linux系統(tǒng)中使用nload、iftop、iostat等工具查看網(wǎng)卡流量,這里我們先來(lái)詳細(xì)講解下 iptraf 方法,需要的朋友參考下。
    2015-05-05
  • Linux下使用nextcloud搭建個(gè)人網(wǎng)盤(pán)代碼實(shí)例

    Linux下使用nextcloud搭建個(gè)人網(wǎng)盤(pán)代碼實(shí)例

    這篇文章主要介紹了Linux下使用nextcloud搭建個(gè)人網(wǎng)盤(pán)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • shell結(jié)構(gòu)化命令if-then-else語(yǔ)句

    shell結(jié)構(gòu)化命令if-then-else語(yǔ)句

    在Shell腳本編程中,if-then-else語(yǔ)句提供了基于條件執(zhí)行不同命令的能力,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Linux中scp命令獲取遠(yuǎn)程文件的方法

    Linux中scp命令獲取遠(yuǎn)程文件的方法

    scp用于在Linux下進(jìn)行遠(yuǎn)程拷貝文件的命令,和它類(lèi)似的命令有cp。接下來(lái)通過(guò)本文給大家介紹Linux中scp命令獲取遠(yuǎn)程文件的方法,一起看看吧
    2016-08-08

最新評(píng)論

余江县| 全南县| 益阳市| 重庆市| 黄浦区| 沽源县| 西昌市| 泗水县| 东乡族自治县| 门源| 临潭县| 临潭县| 子洲县| 安西县| 舒城县| 和平区| 北安市| 云安县| 民乐县| 潍坊市| 桃江县| 革吉县| 香河县| 临汾市| 永吉县| 新巴尔虎左旗| 安吉县| 西青区| 扎兰屯市| 周口市| 芦溪县| 龙南县| 铁岭县| 来安县| 象山县| 莱阳市| 长兴县| 锦州市| 尼木县| 淮北市| 张家川|