- Bash Cookbook
- Ron Brash Ganesh Naik
- 287字
- 2021-07-23 19:17:32
Redirection and pipe bonzanza
Open a shell and create a new bash file in your favorite editor:
#!/bin/sh
# Let's run a command and send all of the output to /dev/null
echo "No output?"
ls ~/fakefile.txt > /dev/null 2>&1
# Retrieve output from a piped command
echo "part 1"
HISTORY_TEXT=`cat ~/.bashrc | grep HIST`
echo "${HISTORY_TEXT}"
# Output the results to history.config
echo "part 2"
echo "${HISTORY_TEXT}" > "history.config"
# Re-direct history.config as input to the cat command
cat < history.config
# Append a string to history.config
echo "MY_VAR=1" >> history.config
echo "part 3 - using Tee"
# Neato.txt will contain the same information as the console
ls -la ~/fakefile.txt ~/ 2>&1 | tee neato.txt
First, ls is a way of producing an error and, instead of pushing erroneous output to the console, it is instead redirected to a special device in Linux called /dev/null. /dev/null is particularly useful as it is a dump for any input that will not be used again. Then, we combine the cat command with grep to find any lines of text with a pipe and use a fork to capture the output to a variable (HISTORY_TEXT).
Then, we echo the contents of HISTORY_TEXT to a file (history.config) using a stdout redirect. Using the history.configfile, we redirect cat to use the raw file—this will be displayed on the console.
Using a double >>, we append an arbitrary string to the history.config file.
Finally, we end the script with redirection for both stdout and stderr, a pipe,, and the tee command. The tee command is useful because it can be used to display content even if it has been redirected to a file (as we just demonstrated).
- MySQL 8從入門到精通(視頻教學版)
- 大學計算機基礎實驗教程
- Getting Started with ResearchKit
- Instant Typeahead.js
- PLC編程及應用實戰(zhàn)
- Mastering Android Development with Kotlin
- 精通Python自動化編程
- 計算機應用基礎實踐教程
- Protocol-Oriented Programming with Swift
- Cybersecurity Attacks:Red Team Strategies
- 基于ARM Cortex-M4F內(nèi)核的MSP432 MCU開發(fā)實踐
- Test-Driven Development with Django
- Go語言從入門到精通
- Anaconda數(shù)據(jù)科學實戰(zhàn)
- Instant AppFog