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

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

主站蜘蛛池模板: 石屏县| 上高县| 平凉市| 林周县| 昆山市| 南康市| 镇原县| 高平市| 登封市| 长武县| 沁水县| 辽源市| 土默特左旗| 日土县| 盐源县| 广元市| 肥城市| 灌云县| 宝坻区| 邢台市| 灵丘县| 南投市| 五华县| 凤台县| 柘荣县| 孝义市| 乌拉特前旗| 裕民县| 易门县| 乐安县| 朝阳市| 镇坪县| 衡山县| 辽阳市| 会东县| 藁城市| 大冶市| 三原县| 三都| 吉安县| 工布江达县|