mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 07:08:01 +00:00
Add Check Return Status Of Running A Shell Command as a ruby til
This commit is contained in:
@@ -10,7 +10,7 @@ pairing with smart people at Hashrocket.
|
||||
|
||||
For a steady stream of TILs, [sign up for my newsletter](https://tinyletter.com/jbranchaud).
|
||||
|
||||
_1085 TILs and counting..._
|
||||
_1086 TILs and counting..._
|
||||
|
||||
---
|
||||
|
||||
@@ -839,6 +839,7 @@ _1085 TILs and counting..._
|
||||
- [Assoc For Hashes](ruby/assoc-for-hashes.md)
|
||||
- [Block Comments](ruby/block-comments.md)
|
||||
- [Chaining Multiple RSpec Change Matchers](ruby/chaining-multiple-rspec-change-matchers.md)
|
||||
- [Check Return Status Of Running A Shell Command](ruby/check-return-status-of-running-a-shell-command.md)
|
||||
- [Click On Text With Capybara](ruby/click-on-text-with-capybara.md)
|
||||
- [Colorful Output With MiniTest](ruby/colorful-output-with-minitest.md)
|
||||
- [Comparing Class Hierarchy Relationships](ruby/comparing-class-hierarchy-relationships.md)
|
||||
|
||||
33
ruby/check-return-status-of-running-a-shell-command.md
Normal file
33
ruby/check-return-status-of-running-a-shell-command.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Check Return Status Of Running A Shell Command
|
||||
|
||||
There are [many
|
||||
ways](http://tech.natemurray.com/2007/03/ruby-shell-commands.html) to run a
|
||||
shell command in a Ruby context. One of the most common is to place the command
|
||||
inside backticks. It runs the command in a subshell.
|
||||
|
||||
The standard output (`stdout`) from running the command is the return value of
|
||||
the statement. Ruby also captures details about the previously run command in
|
||||
the global `$?` variable.
|
||||
|
||||
|
||||
```ruby
|
||||
> `true`
|
||||
=> ""
|
||||
> $?.exitstatus
|
||||
=> 0
|
||||
|
||||
> `false`
|
||||
=> ""
|
||||
> $?.exitstatus
|
||||
=> 1
|
||||
|
||||
> `echo 'hello' && exit 2`
|
||||
=> "hello\n"
|
||||
> $?
|
||||
=> #<Process::Status: pid 12284 exit 2>
|
||||
> $?.exitstatus
|
||||
=> 2
|
||||
```
|
||||
|
||||
The value captured in `$?` is a `Process::Status` object. It can tell us the
|
||||
exit status of the process with `#exitstatus`.
|
||||
Reference in New Issue
Block a user