亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

linux shell將變量拼接到命令中

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

有這個一個場景:需要寫多個定時任務(wù)提交到y(tǒng)arn,這些任務(wù)都是同一時間啟動的。原先的做法是,所有的啟動命令都使用linux的crontab,但是因為任務(wù)過多,所以crontab里的內(nèi)容越來越多,不好管理,改時間也不方便,所以這里寫腳本進行管理。

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

linux拼接字符串

這個就涉及到了linux獲取當前時間和拼接字符串的問題了。本人不是主攻這個方向,所以就是邊百度邊寫,獲取時間:

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"  #如果被雙引號包圍,那么中間可以有空格
str3=$name": "$url  #中間可以出現(xiàn)別的字符串
str4="$name: $url"  #這樣寫也可以
str5="${name}Script: ${url}index.html"  #這個時候需要給變量名加上大括號
echo $str1
echo $str2
echo $str3
echo $str4
echo $str5

運行結(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

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

命令行里拼接字符串

獲取到date了,拼接進命令行就行。

這里先舉個其他例子:

name="abc"
touch /home/$name

這樣等同于 touch /home/abc。

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

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

這樣等同于 touch /home/abc123。

我碰到的問題

按理說萬事俱備,只欠東風。我將命令寫成了:

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

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

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

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

執(zhí)行腳本輸出:

aaa
bbb
ccc

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

相關(guān)文章

最新評論