I am using macbook pro 13 (2015 edition) with MAC OS Mojave and am trying to write the shell script where when it is run through terminal it asks for an input (in the code below an input variable is domains) and then that input becomes capital letter or letters which voronota program requires (so instead of 'c<domains>' it should be 'c<C,D>' or any other letter combinations when the voronota program is run at the third pipe). The code is given below :
#!/bin/bash
for i in $( ls ); do
echo $i
read -p "Domains: " domains
cat $i | voronota get-balls-from-atoms-file --annotated | voronota calculate-contacts --annotated | voronota query-contacts --match-first 'c<$domains>' --match-second 'R<ALA>' | awk '{sum += $3} END {print sum}'
done
I am expecting to get 1.18715 after awk prints the value to the terminal, but in the above code I do not get any value which signals to me that when I write C,D after shell asks "Domains: " the written input is not passed to the variable domain at:
I get the first value when I do "'c<domains>'" or "c<domains>" but as the second should be 152.314, I am not getting anything for it. In general there should be 114 different values. Where might be my problem?
How can I exit the script and return to terminal if domains is not equal to .pdb file, which i specifies . How could I make domains to be equal to "e" or any other string, number, etc. that would mean for the script to exit it and return to terminal?
The upgraded script:
#!/bin/bash
for i in $( ls ); do
echo $i
read -p "Domains: " domains
cat $i | voronota get-balls-from-atoms-file --annotated | voronota calculate-contacts --annotated | voronota query-contacts --match-first "'c<$domains>'" --match-second 'R<ALA>' | awk '{sum += $3} END {print sum}'
done