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"

On Tuesday, February 15, 2022 at 3:51:49 PM UTC-5 [email protected] wrote:

> 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'
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/e2bc78cc-33be-4ffd-ae4f-058aa0f24087n%40googlegroups.com.

Reply via email to