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

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

主站蜘蛛池模板: 启东市| 永春县| 乌拉特前旗| 潜江市| 海城市| 宣汉县| 河津市| 梅州市| 临沭县| 五莲县| 花垣县| 峨眉山市| 九寨沟县| 田阳县| 嘉祥县| 额尔古纳市| 电白县| 竹山县| 兰西县| 辉南县| 普格县| 哈尔滨市| 鸡东县| 密云县| 西畴县| 栖霞市| 定襄县| 昂仁县| 靖江市| 长乐市| 万州区| 章丘市| 绥江县| 曲阳县| 浦城县| 安龙县| 南城县| 沙田区| 鹤岗市| 吴忠市| 石屏县|