官术网_书友最值得收藏!

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.configusing 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).

主站蜘蛛池模板: 孝感市| 昆明市| 新和县| 绥化市| 湛江市| 桐庐县| 普陀区| 原阳县| 洛宁县| 阳东县| 马山县| 科尔| 通山县| 宝丰县| 方山县| 嵩明县| 上犹县| 教育| 蒙阴县| 澎湖县| 澄江县| 称多县| 普兰县| 威远县| 揭东县| 永寿县| 丽江市| 永善县| 绍兴县| 白朗县| 黑水县| 华亭县| 江北区| 阿拉善左旗| 双流县| 垣曲县| 南部县| 理塘县| 成安县| 诸暨市| 双柏县|