在通常的情況下,命令"registerp命令是將指定寄存器中的文本插入到緩沖區(qū)中,而命令"register]p命令與此相類似的,所不同的是這個(gè)命令在插入時(shí)會(huì)有自動(dòng)縮進(jìn)的設(shè)置.而與此相類似的是命令"register]p與"registerp.。擁有最強(qiáng)大的腳本命令,幾乎你想的出來(lái)的功能,都可以用腳本編寫,而且我通過2年來(lái)的觀察linux命令,測(cè)試,發(fā)現(xiàn)該引擎不但腳本命令強(qiáng)大。asp是微軟公司開發(fā)的代替cgi腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫(kù)和其它程序進(jìn)行交互,asp是一種服務(wù)器端腳本編寫環(huán)境,可以用來(lái)創(chuàng)建和運(yùn)行動(dòng)態(tài)網(wǎng)頁(yè)或web應(yīng)用程序。
編寫HereDoc的語(yǔ)法采用以下形式:
[COMMAND] <<[-] 'DELIMITER'
HERE-DOCUMENT
DELIMITER
最后一行以分隔標(biāo)識(shí)符結(jié)束。分隔符前的空白是不允許的。
在本節(jié)中,我們將介紹如何使用heredoc的一些基本示例。
Heredoc最常與cat命令結(jié)合使用。
在下面的示例中,我們使用here document將包含環(huán)境變量和命令的兩行文本傳遞給cat。
linuxidc@linuxidc:~/linuxidc.com$ cat << EOF
> 當(dāng)前的工作目錄是: $PWD
> 您登錄的身份為: $(whoami)
> EOF
從下圖的輸出中可以看出,變量和命令都被替換:
當(dāng)前的工作目錄是: /home/linuxidc/linuxidc.com
您登錄的身份為: linuxidc
讓我們看看如果我們將分隔符用單引號(hào)或雙引號(hào)括起來(lái)會(huì)發(fā)生什么。
linuxidc@linuxidc:~/linuxidc.com$ cat <<- "EOF"
> 當(dāng)前的工作目錄是: $PWD
> 您登錄的身份為: $(whoami)
> EOF
您可以注意到,當(dāng)引用分隔符時(shí),shell不會(huì)執(zhí)行參數(shù)擴(kuò)展和命令替換。
當(dāng)前的工作目錄是: $PWD
您登錄的身份為: $(whoami)
如果在語(yǔ)句或循環(huán)中使用heredoc,請(qǐng)使用<<- 重定向操作,允許您縮進(jìn)代碼。
if true; then
cat <<- EOF
Line with a leading tab.
EOF
fi
輸出:
Line with a leading tab.
您可以使用>,>>運(yùn)算符將其重定向到文件,而不是在屏幕上顯示輸出。
cat << EOF > linuxidc.txt
當(dāng)前的工作目錄是: $PWD
您登錄的身份為: $(whoami)
EOF
如果linuxidc.txt不存在,則會(huì)創(chuàng)建它。 使用時(shí)>文件將被覆蓋,而>>將輸出附加到文件。(如下圖)
還可以通過管道輸入heredoc。在下面的例子中,sed命令將用m替換所有i字符的實(shí)例:
linuxidc@linuxidc:~/linuxidc.com$ cat <<'EOF' | sed 's/i/m/g'
> idc
> linuxmi
> EOF
輸出如下:
mdc
lmnuxmm
要將管道數(shù)據(jù)寫入文件:
linuxidc@linuxidc:~/linuxidc.com$ cat <<'EOF' | sed 's/i/m/g'> linuxidc.txt
> idc
> linuxmi
> EOF
使用Heredoc和SSH
使用Heredoc是通過SSH在遠(yuǎn)程系統(tǒng)上執(zhí)行多個(gè)命令的最方便和最簡(jiǎn)單的方法之一。