บางคำตอบไม่เคารพความคิดเห็น บางส่วนไม่เคารพส่วนต่างๆ บางคนรู้จักไวยากรณ์เดียวเท่านั้น (เฉพาะ ":" หรือเฉพาะ "=") คำตอบ Python บางคำตอบล้มเหลวในเครื่องของฉันเนื่องจากความแตกต่างของคำอธิบายภาพหรือการนำเข้าโมดูล sys ไม่สำเร็จ ทั้งหมดค่อนข้างสั้นเกินไปสำหรับฉัน
ดังนั้นฉันจึงเขียนของฉันเองและถ้าคุณมี Python ที่ทันสมัยคุณอาจเรียกสิ่งนี้จาก Bash shell ของคุณ มีข้อได้เปรียบในการปฏิบัติตามข้อกำหนดการเข้ารหัส Python ทั่วไปและยังให้ข้อความแสดงข้อผิดพลาดและความช่วยเหลือที่สมเหตุสมผล หากต้องการใช้ให้ตั้งชื่อเช่น myconfig.py (อย่าเรียกว่า configparser.py หรืออาจพยายามนำเข้าเอง) ทำให้สามารถเรียกใช้งานได้และเรียกมันว่า
value=$(myconfig.py something.ini sectionname value)
นี่คือรหัสของฉันสำหรับ Python 3.5 บน Linux:
#!/usr/bin/env python3
"""A program that Bash can call to parse an .ini file"""
import sys
import configparser
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="A program that Bash can call to parse an .ini file")
parser.add_argument("inifile", help="name of the .ini file")
parser.add_argument("section", help="name of the section in the .ini file")
parser.add_argument("itemname", help="name of the desired value")
args = parser.parse_args()
config = configparser.ConfigParser()
config.read(args.inifile)
print(config.get(args.section, args.itemname))