(1)cat和EOF簡介
cat 用於顯示文本文件內容,全部輸出
EOF “end of file”,表示文本結束符
(2)使用
用法1.多行導入文件(新建文件或者覆蓋文件內容)
- cat << EOF >abcd.txt
- Hello!
- This is a test file!
- Test for cat and EOF!
- EOF
來看下執行結果
- cat abcd.txt
- Hello!
- This is a test file!
- Test for cat and EOF!
這就是多行導入!
用法2.文件追加
cat << EOF >> test.sh
(3)說明
其實可以用其他字符來代替EOF,它也只是個標識符而已!
如果cat內容中帶有 $變量的時候會將$和變量名變成空格,想到到轉義字符\添加之後可以搞定。同樣cat <<EOF中含有`的時候會將“內的命令轉換成結果,同樣也需要添加轉義字符\
例如
- cat <<EOF >> /home/oracle/.bash_profile
- PATH=\$PATH:\$HOME/bin
- export ORACLE_BASE=/u01/app/oracle
- export ORACLE_HOME=\$ORACLE_BASE/10.2.0/db_1
- export ORACLE_SID=yqpt
- export PATH=\$PATH:\$ORACLE_HOME/bin
- export NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
- EOF
如果不是在腳本中,我們可以用Ctrl-D輸出EOF的標識
# cat > test.txt
abcd
dcba
# cat > test.txt
abcd
dcba
eftf
Ctrl-D
Ctrl-D
再舉一個例子:
cat > /etc/zabbix/check_fs.sh <<EOF
#!/bin/sh
testfile="/test.tmp"
touch \$testfile >/dev/null
if [ -f "\$testfile" ]
then
rm -rf \$testfile
echo "1"
else
echo "0"
fi
EOF