- 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).
- 高效微控制器C語言編程
- 大學計算機基礎實驗教程
- 摩登創客:與智能手機和平板電腦共舞
- Oracle從新手到高手
- 深入實踐Spring Boot
- 實戰Java程序設計
- Learning Informatica PowerCenter 10.x(Second Edition)
- JSP開發案例教程
- PLC編程及應用實戰
- Learning ELK Stack
- Mastering Apache Spark 2.x(Second Edition)
- Haskell Data Analysis Cookbook
- 執劍而舞:用代碼創作藝術
- Access 2010數據庫應用技術實驗指導與習題選解(第2版)
- Python 3 數據分析與機器學習實戰