Linux

如何從字元串參數創建沒有 HTTP 或 HTTPS 的子目錄

  • January 19, 2020

我有 ksh 腳本,它正在執行以下命令:

mkdir -p down/$JENKINS_URL

問題是一些 $JENKINS_URL(字元串)包括 HTTP:// 和一些 HTTPS://,這導致在 down 文件夾下創建兩個子目錄,然後為每個子目錄創建子目錄。如何避免它並在下文件夾下直接創建沒有 HTTP 或 HTTPS 的文件夾名稱?

參數替換可用於從JENKINS_URL. 從ksh 手冊頁

$ {name#pattern}, $ {名稱##模式}

如果 pattern 匹配參數 name 值的開頭,則從替換結果中刪除匹配的文本。單個 # 導致最短匹配,兩個 # 導致最長匹配。

舉個例子:

JENKINS_URL="http://abc"
mkdir -p "down/${JENKINS_URL#*://}"
JENKINS_URL="https://def"
echo mkdir -p "down/${JENKINS_URL#*://}"

上面的腳本將去除任何協議前綴。執行腳本的結果是:

mkdir -p down/abc
mkdir -p down/def

引用自:https://unix.stackexchange.com/questions/562855