cat 與 EOF 的使用

2021-10-06 06:10:55 字數 1130 閱讀 1497

cat 和 eof 在shell中常常被組合使用來將多行的內容寫入到乙個檔案中,但是在使用該命令的時候存在寄出坑:

shell 指令碼:

#!/usr/bin/env bash

# 該行的 >> 表示追加的意思,如果再將該指令碼執行一次,則生成的檔案中的內容會以追加的方式寫入,如果改為 > ,則執行多次的效果是一致的

cat <> brightup.sh

!/bin/bash

curr=`cat /sys/class/backlight/intel_backlight/actual_brightness`

if [ $curr -lt 4477 ]; then

curr=$((curr+406));

echo $curr > /sys/class/backlight/intel_backlight/brightness;

fieof

生成的檔案內容:

!/bin/bash

curr=

if [ -lt 4477 ]; then

curr=406;

echo > /sys/class/backlight/intel_backlight/brightness;

fi

上面的指令碼並沒有將內容原文輸出,而是做了替換和求值,那麼該怎麼來實現將原文輸出呢?

這裡有兩種方式:

1、方式一

cat <<'eof' >> brightup.sh
2、方式二 

cat <<\eof >>brightup.sh
3、方式三

#!/usr/bin/env bash

cat <<< '

#!/bin/bash

curr=`cat /sys/class/backlight/intel_backlight/actual_brightness`

if [ $curr -lt 4477 ]; then

curr=$((curr+406));

echo $curr > /sys/class/backlight/intel_backlight/brightness;

cat使用(EOF的一點誤區)

在linux shell指令碼中我們經常見到類似於cat eof的語句,不熟悉的童鞋可能覺得很奇怪 eof好像是檔案的結束符,用在這裡起到什麼作用?首先必須要說明的是eof在這裡沒有特殊的含義,你可以使用foe或ooo等 當然也不限制在三個字元或大寫字元 接下來,簡單描述一下幾種常見的使用方式及其作...

cat使用(EOF的一點誤區)

在linux shell指令碼中我們經常見到類似於cat eof的語句,不熟悉的童鞋可能覺得很奇怪 eof好像是檔案的結束符,用在這裡起到什麼作用?首先必須要說明的是eof在這裡沒有特殊的含義,你可以使用foe或ooo等 當然也不限制在三個字元或大寫字元 接下來,簡單描述一下幾種常見的使用方式及其作...

使用cat命令和EOF標識輸出多行檔案

在某些場合,可能我們需要在指令碼中生成乙個臨時檔案,然後把該檔案作為最終檔案放入目錄中。可參考ntop.spec檔案 這樣有幾個好處,其中之一就是臨時檔案不是唯一的,可以通過變數賦值,也可根據不同的判斷生成不同的最終檔案等等。一 cat和eof cat命令是linux下的乙個文字輸出命令,通常是用於...