how to add lines into a file

HI All,

i have a requirement to add a few lines after a particular match / keyword or string in a shell script . below code is for reference when i execute this code it is adding all the bold lines at the bottom . can you please help thank you

  • name: EDIT DIP Job Runner
    lineinfile:
    path: “{{ sas_config }}/{{ sas_config_level }}/Web/Applications/SASWIPSchedulingServices9.4/dip/DIPJobRunner.sh”
    state: present
    insertafter: ‘kill $pid’
    line: “{{ item }}”
    with_items:
    - sleep 3
    - if [ -f $PIDFILE ]; then
    - kill -9 $pid
    - fi
    become: true
    become_user: ‘{{ install_user.name }}’
    when: ‘“midtier” in group_names’

any update please ?

This means that the regex you provide doesn’t match:

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/lineinfile_module.html#parameter-insertafter

For the regex to match, you’ll need to backslash-escape (with a single backslash, since you’re using single quotes) the dollar sign in your insertafter regex.

But even if you do that, it isn’t going to work. There are several problems. First, each line that gets added will be added immediately after the insertafter line, so the order will end up being backwards. Second, there already is a “fi” line after “kill $pid” in DIPJobRunner.sh, so your “fi” won’t be added. (Which is just as well, since they’re in the wrong order anyway.

You can probably get what you want if you drop the with_items and change “line:” like this:
line: “sleep 3; if [ -f $PIDFILE ] ; then kill -9 $pid ; fi”