MST
星途 面试题库

面试题:Bash脚本中多语言文本文件的读取与应用

你正在编写一个Bash脚本,它需要支持多种语言的用户交互。每种语言的文本内容存储在独立的文本文件中(例如,en.txt存储英文文本,fr.txt存储法语文本)。文本文件的格式为每行一个键值对,以冒号分隔(如'greeting:Hello')。脚本需要根据用户设置的语言环境变量(LANG)读取相应的文本文件,并根据给定的键获取对应的文本值。例如,当用户设置LANG为'en_US.UTF - 8',并请求'greeting'的值时,脚本应输出'Hello'。请实现这个功能的Bash脚本代码,并考虑文件不存在等异常情况的处理。
10.4万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 获取语言环境变量中的语言部分
lang=$(echo $LANG | cut -d '.' -f 1)

# 构建对应的文本文件路径
file_path="${lang}.txt"

# 检查文件是否存在
if [ ! -f "$file_path" ]; then
    echo "语言文件 $file_path 不存在"
    exit 1
fi

# 获取要查询的键
read -p "请输入要查询的键: " key

# 在文件中查找键对应的值
value=$(grep "^$key:" $file_path | cut -d ':' -f 2)

# 检查是否找到对应的值
if [ -z "$value" ]; then
    echo "在文件 $file_path 中未找到键 $key 对应的值"
else
    echo "$value"
fi