簡體   English   中英

如何拆分bash命令?

[英]How to split a bash command?

我有以下命令

mkdir -p /tmp/{A,B,C,D}

上面的命令工作正常,但不是以下作為bash考慮B,C和D作為不同的命令:

我想要下面的東西:

mkdir -p /tmp/{A,
B,
C,
D}

正如評論中所指出的那樣,你可以在換行符之前使用反斜杠來做到這一點,但是任何空格都會被認為是重要的,整個事情最終會變得相當丑陋。 作為一種美學上更令人愉悅的解決方法,您可以將目錄名稱放在一個數組中。

dirs=(
    a
    b
    c
    d
  )
mkdir -p "${dirs[@]/#//tmp/}"

構造"${array[@]/#/prefix)"再現array的值,並在每個前面添加前綴prefix

但這是相對模糊的; 除非您創建的真實目錄名稱非常冗長且繁瑣,否則只需將其寫出來就是我的建議。

正如注釋中所指出的,兩個數組和{A,B,C,D}都是Bash結構,所以如果你調用sh而不是bash就不可用(即使shbash的符號鏈接; Bash會注意到,並啟用POSIX模式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM