如何执行JSON文件中存储的Shell表达式并分离JSON与Shell脚本?
实现方案
当然可以分开存储,给你几个简便的方法:
方法1:用Shell命令直接处理
直接通过一行命令读取并解析hi.json里的内容,执行表达式后输出结果:
eval "echo \"$(cat hi.json)\""
说明
cat hi.json读取目标json文件的原始内容- 外层的
echo "\"...\""用双引号包裹内容,确保json里的引号能被正确识别 eval触发Shell解析内容中的$(...)表达式
执行后会输出:
{ "word": "hello-world" }
方法2:写可复用的Shell脚本
创建独立的处理脚本(比如命名为parse_json.sh),内容如下:
#!/bin/bash # 读取传入的json文件内容 raw_content=$(cat "$1") # 解析并输出结果 eval "echo \"$raw_content\""
给脚本添加执行权限:
chmod +x parse_json.sh
使用时只需传入hi.json的路径即可:
./parse_json.sh hi.json
这种方式完全实现了json文件与处理脚本的分离,脚本还能复用处理其他包含Shell表达式的json文件。
⚠️ 注意:以上方法仅适用于你完全信任的json文件,因为eval会执行内容里的任意Shell代码,若文件来自不可信来源,可能带来安全风险。
内容的提问来源于stack exchange,提问作者user7858768
相关产品推荐
相关产品推荐

