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

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

主站蜘蛛池模板: 陇川县| 深泽县| 当涂县| 义乌市| 辽源市| 社旗县| 高淳县| 巍山| 襄垣县| 临洮县| 南雄市| 沅陵县| 巩义市| 梨树县| 濮阳县| 天长市| 区。| 闽清县| 永登县| 康定县| 垣曲县| 临颍县| 驻马店市| 泉州市| 正蓝旗| 抚宁县| 塔河县| 安化县| 霍林郭勒市| 泽普县| 东乡县| 博爱县| 霍邱县| 罗平县| 万源市| 淳化县| 霍林郭勒市| 平远县| 宁乡县| 厦门市| 淳安县|