В скрипте bash у меня есть код, возвращенный из выходных данных другой программы в ipsumCode
, и настраиваемые пояснительные примечания, соответствующие каждому коду (их сотни), заданные в виде строки для удобного редактирования.
Вместо того чтобы полагаться на операторы if для каждого кода и создавать собственные заметки для каждого из них, я пытаюсь сократить все это до одного if
теста, который может отображать соответствующий вывод.
#!/bin/bash
identifier="FooBar"
#...
msg_456="Some description here."
#...
msg_599="A different description here."
msg_600="Yet another different description here."
#...
# $ipsumCode is set by output from another program, but hard-code it here to test
ipsumCode=599
ipsumMessage=msg_$ipsumCode
#...
if [ "$ipsumCode" -ge 456 ]; then
printf "$identifier: $ipsumMessage\n"
#...
fi
Поскольку ipsumCode
в данном случае - 599, как мне отобразить содержимое из msg_599
?
Над дисплеями:
FooBar: msg_599
Желаемый вывод:
FooBar: A different description here.
Я рассмотрел несколько похожих вопросов и ответов, но все они касаются комбинирования выходных данных различными способами, а не создания имени строки из другой строки и вывода содержимого соответствующей строки.