I have a script that I am writing that checks a value and then based on the value modifies it.
I am trying to understand why it works this one way and not the other. Based on the google and stackoverflow searches I did, nothing really fits what I am trying to understand.
The value it is trying to change is test_value = 5 and changes the 5 to a 6. In the file there are two like lines.
test_value = 5 test_value_action = log
Script content is below:
#!/bin/bash CHECK="test_value" sed -i 's|^\("$CHECK" = \).*|\1'6'|' /user/file.txt
That doesn't work. But if I hard code the value for check it works
#!/bin/bash CHECK="test_value" sed -i 's|^\(test_value = \).*|\1'6'|' /user/file.txt
What am I failing to understand? Also for other ones I have wrote where there is only one single line in the file that it can match, it works with $CHECK.