成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在 Bash shell 中使用花括號擴展 {..}

系統 Linux
花括號擴展(Brace expansion) {..} 是 Linux 中使用率很高的一個 shell 功能。

?你可以使用它打印數字或字母序列,將兩個整數或字母使用花括號中的兩個點分隔開,然后會看到神奇的結果。

我們舉個最簡單的例子,看如下代碼:

echo

上述一行 echo 代碼的輸出將會是什么呢?如下:

1 2 3 4 5 6 7 8 9 10

輸出結果,會打印在同一行中,中間使用空格隔開。

為了讓大家可以更好的理解它的功能,我們接下來列舉幾個其他例子。

一些例子

假如我們想要得到一個從 7 到 1 的數字序列:?

$echo7 6 5 4 3 2 1

可以添加前綴 0:?

$echo01 02 03 04 05 06 07 08 09 10

可以使用 {x..y..z} 形式的花括號來擴展生成從 x 到 y 的值,遞增(步長)為 z。比如我們想要打印 15 以內的偶數序列,如下:?

$echo0 2 4 6 8 10 12 14

或者奇數序列:

$echo1 3 5 7 9 11 13 15

步長可以指定為任何數值:?

$echo100 199 298 397 496 595 694 793 892 991

也可以采用負數:?

$echo3 2 1 0 -1 -2 -3 -4


注意:花括號中的點之間不能有空格,否則,擴展將不起作用。

使用字母序列

我們上面的例子,介紹的是使用數字序列。但是也可以使用它生成字母序列。看下面的例子:?

$echoA B C D E F G H

也可以將順序反過來:?

$echoH G F E D C B A

或者指定步長:?

$echoH F D B

或者使用小寫字母:?

$echoa b c d e f

實際應用

上面我們介紹了花括號擴展的具體用法,下面來介紹一些關于它的實際應用。

創建一系列文件

我們可以利用花括號擴展來創建一系列具有相同文件名規則的文件,看下面的例子:?

$ touch file_{1..10}.txt$ lsfile_10.txt  file_2.txt  file_4.txt  file_6.txt  file_8.txtfile_1.txt   file_3.txt  file_5.txt  file_7.txt  file_9.txt

創建備份文件

當我們在編輯配置文件時,一般建議先對其進行備份,按照大多數人的習慣,是在原始文件名中添加 .bak 擴展名,這表示它是對原文件的一個備份。

比如:

cp -p long_filename.txt long_filename.txt.bak

現在我們來使用花括號擴展來完成這個工作,如下代碼:

cp -p long_filename.txt{,.bak}

是的,這里的 {,text} 不是上面的那種 {X..Y} 的模式,但是你需要知道有這樣一個用法的存在。

$ cp -p long_filename.txt{,.bak}$ lslong_filename.txt long_filename.txt.bak

上述 cp 命令的 -p 選項表示需要保留原文件的屬性,比如所有權、時間戳等。

使用多個花括號

可以使用多個花括號來創建具有相似名稱和不同擴展名的文件,看下面的例子:?

$ touch {a,b,c}.{hpp,cpp}$ lsa.cpp  a.hpp  b.cpp  b.hpp  c.cpp  c.hpp

在路徑中使用或括號擴展

假設有兩個路徑,其目錄結構是類似的,只有很少的一部分不一樣(比如中間某個文件夾名稱不同),這個時候,花括號擴展會非常有用。看下面代碼:

mv project/{new,old}/dir/file

其相當于:

mv project/new/dir/file project/old/dir/file

并非所有內容都可擴展

這是不言而喻的。如果你希望創建一個序列,給出的條件應該是可以創建成序列的東西。如果你使用的是一個很奇怪的組合,將不能被擴展。比如:?

$echo{1..Z}

另外,也不能使用小數:?

$echo{1..5..0.5}

一些奇怪的組合,也會生成奇怪的結果:?

$echoa ` _ ^ ]  [ Z Y X W V U T S R Q P O N M L K J I H G F

當你剛開始接觸花括號擴展時,會覺得它很麻煩。但是,手動打字會更耗費時間。一旦你熟悉了它,那你的 Linux 技能會更上一個臺階。

責任編輯:龐桂玉 來源: TIAP
相關推薦

2019-04-15 11:10:34

Bash方括號命令行

2019-04-22 14:39:05

BashLinux命令

2019-03-18 15:53:11

BashLinux花括號

2020-10-13 19:04:58

Bash信號捕獲Shell腳本

2017-04-05 13:17:26

LinuxShellvi

2022-12-02 14:30:24

Bash腳本數組

2023-07-20 15:37:50

Bash數組

2023-07-12 14:13:03

BashLinux

2022-12-14 10:08:00

BashLinux

2022-01-16 07:48:33

腳本Bash 工具

2023-03-14 08:17:40

Bash編程語言

2012-08-20 10:43:50

IBMdW

2020-04-09 10:18:51

Bash循環Linux

2024-06-13 08:50:16

Macshell 工具命令行工具

2023-09-15 13:31:00

Linuxattr

2020-10-29 07:09:07

編程花括號程序員

2022-11-23 08:14:42

bash 腳本test 命令

2022-11-03 20:38:01

CMD命令Go

2019-02-12 15:47:42

Bash尖括號命令

2021-05-11 07:50:31

BashShell腳本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本不卡一区二区三区在线观看 | 成人高清在线 | 天天射天天干 | 韩国毛片一区二区三区 | 婷婷狠狠 | 欧美综合精品 | 91精品久久久久久久久99蜜臂 | 精品日本久久久久久久久久 | 超碰在线97国产 | 亚洲高清在线观看 | 欧美另类视频 | 亚洲一区二区三区免费在线观看 | 最新国产在线 | 亚洲免费观看视频网站 | 国产精品国产亚洲精品看不卡15 | 久久成人av电影 | 午夜性色a√在线视频观看9 | 欧美一区二区三区久久精品 | 日韩一区二区三区在线观看 | 亚洲一区在线日韩在线深爱 | 欧美性猛片aaaaaaa做受 | 成年人在线| 亚洲精品2区 | 最新国产在线 | 国产伦精品一区二区三区照片91 | 国产精品久久久久久久久久久久 | 中国一级特黄真人毛片 | 国产一区二区三区四区五区加勒比 | 日韩一区二区福利视频 | 亚洲精品一区在线观看 | 亚洲精品一区二区三区蜜桃久 | 国产激情偷乱视频一区二区三区 | 亚洲一区在线观看视频 | 天天搞天天操 | 99精品亚洲国产精品久久不卡 | 亚洲最新在线 | 欧美在线 | 黄色网址av | 99成人| 欧美日韩一 | 国产精品永久 |