我有 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