走到第5步时,输入‘./config --prefix=/usr/local/gmssl’报错:-bash:./config:No such file directory
时间: 2023-10-09 18:14:49 浏览: 36
这个错误提示是告诉你当前目录下没有找到名为 config 的文件,因此无法执行命令。请检查一下你当前的工作目录是否正确,是否已经切换到了 OpenSSL 的源代码目录下。如果你确认已经在正确的目录下,那么可能是你没有正确地下载和解压 OpenSSL 的源代码包,建议重新下载源代码并解压后再尝试执行第5步的命令。
相关问题
linux下shell脚本如何解析如下配置文件,请写出解析其通用脚本。 [MYSQL] DB_PORT=3306 DB_USER=root DB_CONFIG=./configure --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ [REDIS] DB_PORT=6379 DB_ID=4
可以使用以下通用脚本来解析该配置文件:
```bash
#!/bin/bash
# 定义配置文件路径
CONF_FILE="/path/to/config/file.conf"
# 定义当前解析的 section
current_section=""
# 定义配置项变量
DB_PORT=""
DB_USER=""
DB_CONFIG=""
DB_ID=""
# 读取配置文件
while read line; do
# 去掉左右空格
line=$(echo "${line}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
# 忽略注释和空行
if [[ ${line} == "#"* ]] || [[ ${line} == "" ]]; then
continue
fi
# 解析 section
if [[ ${line} == "["*"]" ]]; then
current_section=$(echo "${line}" | sed 's/\[//;s/\]//')
continue
fi
# 解析配置项
key=$(echo ${line} | cut -d'=' -f1)
value=$(echo ${line} | cut -d'=' -f2)
if [[ ${current_section} == "MYSQL" ]]; then
if [[ ${key} == "DB_PORT" ]]; then
DB_PORT=${value}
elif [[ ${key} == "DB_USER" ]]; then
DB_USER=${value}
elif [[ ${key} == "DB_CONFIG" ]]; then
DB_CONFIG=${value}
fi
elif [[ ${current_section} == "REDIS" ]]; then
if [[ ${key} == "DB_PORT" ]]; then
DB_PORT=${value}
elif [[ ${key} == "DB_ID" ]]; then
DB_ID=${value}
fi
fi
done < ${CONF_FILE}
# 输出配置项变量
echo "MYSQL:"
echo "DB_PORT=${DB_PORT}"
echo "DB_USER=${DB_USER}"
echo "DB_CONFIG=${DB_CONFIG}"
echo "REDIS:"
echo "DB_PORT=${DB_PORT}"
echo "DB_ID=${DB_ID}"
```
解析过程如下:
1. 定义配置文件路径和配置项变量。
2. 读取配置文件,逐行解析。
3. 去掉左右空格和注释,忽略空行。
4. 解析 section,记录当前解析的 section。
5. 解析配置项,根据当前 section 记录相应的配置项变量。
6. 输出配置项变量。
注意事项:
1. 如果配置文件中有多个 section,需要根据不同的 section 解析相应的配置项。
2. 如果配置文件中的配置项顺序不固定,需要使用 key=value 的方式解析配置项。
3. 如果配置文件中的配置项可能包含空格和特殊字符,需要使用 sed 等工具进行字符串处理。
linux下shell脚本如何解析类似如下配置文件,请写出解析其通用脚本。特别指出DB_CONFIG这一项是多行的,由于输入的原因故呈现给您的是单行的。 [MYSQL] DB_HOST=192.168.0.1 DB_PORT=3306 DB_USER=root DB_PASSWD=mysql1234 DB_NAME=system_manager1 DB_CONFIG=./configure --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \
可以使用`awk`命令来解析这个配置文件。下面是一个通用的脚本,可以解析类似的配置文件,其中`DB_CONFIG`项支持多行输入。
```bash
#!/bin/bash
config=$1
awk -v RS='' -v FS='\n|=' -v OFS='=' '
{
if ($1~/\[.*\]/) {
section=substr($1, 2, length($1)-2)
} else {
gsub(/ /, "", $1)
if (NF > 1) {
gsub(/\\/, "", $2)
if ($1 == "DB_CONFIG") {
db_config=$2
while (getline > 0) {
gsub(/\\/, "", $0)
db_config=db_config $0
if ($0 !~ /\\$/) {
break
}
}
print section, $1, db_config
close(FILENAME)
} else {
print section, $1, $2
}
}
}
}
' $config
```
使用方式如下:
```bash
bash parse_config.sh config.txt
```
其中`config.txt`是待解析的配置文件,执行后会输出解析结果。