getting command not found error when using ansible shell module to execute shell script.

Here is my playbook:

cat test.yml

- name: Play 2
hosts: targetserver
tasks:

- copy: src=./centosscript.sh dest=~ mode=775
- shell: ~/centosscript.sh

Here is my shell script:

cat centosscript.sh
#/bin/ksh
grabip=ip r | grep kernel``

I also tried

grabip=ifconfig | grep inet``

cat myhosts
[targetserver]
10.9.9.26

I get the following error when i run the playbook:

$ ansible-playbook -i myhosts test.yml
TASK [copy] *************************************************************************************************************************************************
changed: [10.9.9.26]

TASK [shell] ************************************************************************************************************************************************
fatal: [10.9.9.26]: FAILED! => {"changed": true, "cmd": "~/centosscript.sh", "delta": "0:00:00.122291", "end": "2020-03-17 12:18:49.485014", "msg": "non-zero return code", "rc": 1, "start": "2020-03-17 12:18:49.362723", "stderr": "/home/user1/centosscript.sh: line 2: ip: command not found", "stderr_lines": ["/home/user1/centosscript.sh: line 2: ip: command not found"], "stdout": "", "stdout_lines": []}

PLAY RECAP **************************************************************************************************************************************************
10.9.9.26 : ok=1 changed=1 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0

When i run ip r or ifconfig commands they work fine on the target server.

I need to use ksh shell. However, i get the same error even if i try #/bin/bash in my shell script. Below is the output of the same commands working fine with the ksh shell on the target server.

bash-4.2$ ksh $ ip r | grep kernel 10.9.9.0/24 dev eth0 proto kernel scope link src 10.9.9.26 metric 100 $ ifconfig | grep inet inet 10.9.9.26 netmask 255.255.255.0 broadcast 10.9.9.255

Can you please help overcome this issue ?