如何从字符串参数创建没有 HTTP 或 HTTPS 的子目录

如何从字符串参数创建没有 HTTP 或 HTTPS 的子目录

我有 ksh 脚本,它正在运行以下命令:

mkdir -p down/$JENKINS_URL

问题是一些 $JENKINS_URL (字符串)包含 HTTP:// 和一些 HTTPS://,这导致在 down 文件夹下创建两个子目录,然后为每个子目录创建子目录。如何避免它并在 down 文件夹下直接创建不带 HTTP 或 HTTPS 的文件夹名称?

答案1

参数替换可用于从JENKINS_URL.来自ksh 手册页

${名称#模式},${名称##模式}

如果模式与参数名称值的开头匹配,则将从替换结果中删除匹配的文本。单个 # 导致最短匹配,两个 # 导致最长匹配。

举个例子:

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

相关内容