прочитайте файл и на основе критерия распечатайте желаемый вывод

if /path/to/script.sh; then
    echo "done."
    exit 0
else
    echo "error."
    exit 1
fi

Или, оставаясь однострочным:

/path/to/script.sh && echo done. || { echo error. ; exit 1; }

Ваша редакция говорит, что A && {B1; БИ 2 ; } || {C1; C2; } нотация не работает. предполагая, что B2 возвращает 1, что не соответствует вашему исходному сообщению (где выход 0? Вы пробовали его добавить?).

1
15.05.2019, 15:18
3 ответа

Используйтеawk:

awk -F'[0-9]' '
    BEGIN{
        x["H"]=1;
        x["O"]=8;
        x["C"]=6;
        x["Br"]=35;
    }
    { print $0" = "x[$1]; }
' input_file > output_file

Выход:

H1 = 1
O1 = 8
C1 = 6
H2 = 1
H3 = 1
O2 = 8
C2 = 6
Br1 = 35
2
27.01.2020, 23:30

С файлом input, содержащим указанные вами значения:

for tuple in 'H1,1' 'O1,8' 'C1,6' 'H2,1' 'H3,1' 'O2,6' 'C2,8' 'Br1,35'; do
    search=$(echo "$tuple" | cut -d',' -f1)
    replace=$(echo "$tuple" | cut -d',' -f2)
    sed -i "s/$search/$search = $replace/g" input
done
0
27.01.2020, 23:30

Сделано командой sed, тоже работает нормально

команда

sed -i  -e "/H/s/.*/& = 1/" -e "/O/s/.*/& = 8/" -e "/C/s/.*/& = 6/" -e "/Br/s/.*/& = 35/" filename

выход

H1 = 1
O1 = 8
C1 = 6
H2 = 1
H3 = 1
O2 = 8
C2 = 6
Br1 = 35
0
27.01.2020, 23:30

Теги

Похожие вопросы