# changed\_when and $?

**URL:** <https://forum.ansible.com/t/changed-when-and/16024>\
**Category:** Ansible Project\
**Created:** [August 24, 2014, 10:58am UTC](https://forum.ansible.com/t/changed-when-and/16024 "2014-08-24T10:58:08Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akos\_Vandra](https://avatars.discourse-cdn.com/v4/letter/a/8baadc/32.png) [@Akos\_Vandra](https://forum.ansible.com/u/Akos_Vandra)\
**Post date:** [August 24, 2014, 10:58am UTC](https://forum.ansible.com/t/changed-when-and/16024/1 "2014-08-24T10:58:08Z")

</div>

Hello!

Is there a similar functionality to $? in many script languages in ansible?

I'd like to do something like this without having to register a  
variable after all commandS:

- shell: \<do something\>  
&nbsp;&nbsp;changed\_when: $?.rc != 128

Regards,  
&nbsp;&nbsp;Akos Vandra

---

<div class="post-metadata">

**Author:** ![Serge\_van\_Ginderacht](https://avatars.discourse-cdn.com/v4/letter/s/b782af/32.png) [@Serge\_van\_Ginderacht](https://forum.ansible.com/u/Serge_van_Ginderacht)\
**Post date:** [August 24, 2014, 11:20am UTC](https://forum.ansible.com/t/changed-when-and/16024/2 "2014-08-24T11:20:22Z")

</div>

​ register: donesomething​

​ changed\_when: donesomething.rc != 128​

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [August 24, 2014, 1:59pm UTC](https://forum.ansible.com/t/changed-when-and/16024/3 "2014-08-24T13:59:30Z")

</div>

“I’d like to do something like this without having to register a  
variable after all commandS:”

Short answer, no.

We briefly had something like a “last\_result” but this causes some wasted overhead to run all the time when something isn’t being registered, and especially with fact caching support now a feature in the system, we don’t want to hammer Redis like that if it were enabled.

So yes, you’ll have to use register, but like Serge says, you can do it within the same task.
