可以使用以下代码来获取目录中所有证书的文件名:
#!/bin/bash
# 指定证书目录
cert_dir="/path/to/certificates"
# 获取目录中所有证书文件的名称,并将结果存储到数组中
cert_files=($(find $cert_dir -type f -name "*.crt" -o -name "*.pem" -o -name "*.cer"))
# 遍历所有证书文件,并输出文件名
for cert_file in "${cert_files[@]}"
do
echo "Certificate file name: $cert_file"
done
脚本中的“cert_dir”变量指定证书目录的路径。接下来,使用“find”命令找到目录中所有证书文件的名称,并将结果保存到数组“cert_files”中。最后,使用循环遍历所有证书文件,并输出文件名。
如果还想输出证书的拓展名或去除拓展名的文件名,可以使用以下代码:
#!/bin/bash
# 指定证书目录
cert_dir="/path/to/certificates"
# 获取目录中所有证书文件的名称,并将结果存储到数组中
cert_files=($(find $cert_dir -type f -name "*.crt" -o -name "*.pem" -o -name "*.cer"))
# 遍历所有证书文件,并输出文件名、拓展名和去除拓展名的文件名
for cert_file in "${cert_files[@]}"
do
cert_name=$(basename "$cert_file") # 去除路径,只保留文件名
cert_ext="${cert_file##*.}" # 获取拓展名
cert_name_no_ext="${cert_name%.*}" # 去除拓展名,只保留文件名
echo "Certificate file name: $cert_name"
echo "Certificate extension: $cert_ext"
echo "Certificate file name without extension: $cert_name_no_ext"
done
在循环中,使用“basename”命令提取文件名,然后使用“##.”来获取文件名中的拓展名,使用“%.”去除文件名中的拓展名。最后,输出文件名、拓展名和去除拓展名的文件名。