echo (命令)
DOS、OS/2、Microsoft Windows、Unix與類Unix作業系統的指令
在電腦技術中,echo
是一個DOS、OS/2、Microsoft Windows、Singularity、Unix和類Unix系統中的命令,用來將字串輸出到終端上。它通常在shell指令碼和批次處理中使用,以將狀態資訊輸出到螢幕或檔案中。
使用範例
編輯$ echo This is a test.
This is a test.
$ echo "This is a test." > ./test.txt
$ cat ./test.txt
This is a test.
可以使用ANSI跳脫代碼圖形再現序列(SGR sequences)輸出彩色文字:
FGRED=`echo "\033[31m"`
FGCYAN=`echo "\033[36m"`
BGRED=`echo "\033[41m"`
FGBLUE=`echo "\033[35m"`
BGGREEN=`echo "\033[42m"`
#将终端颜色恢复为正常状态
NORMAL=`echo "\033[m"`
#然后:
echo "${FGBLUE} Text in blue ${NORMAL}"
echo "Text normal"
echo "${BGRED} Background in red"
echo "${BGGREEN} Background in Green and back to Normal ${NORMAL}"
有的Unix變種(例如Linux)支援選項-n
和-e
,且除非提供-e
選項,否則不處理跳脫序列。例如,FGRED=`echo -e "\033[31m"`
可能會在Linux下使用。不幸的是,由於歷史上BSD和System V的不相容性,這不是標準選項[1];有問題時,可以使用printf
命令。因此,建議使用printf
,確保跳脫序列被正確處理。等效的printf
代碼就是FGRED=`printf "\033[31m"`
。
DOS、Microsoft Windows支援選項on
和off
。例如,echo off
可以關閉回顯,即不顯示命令提示符。
C:\>ECHO off
::注意下一条命令前无命令提示符
ECHO Hello World!
Hello World!
ECHO on
C:\>
一般,批次處理會在首行執行此條命令,以關閉執行過程中的回顯。然而,執行此條命令亦會顯示命令提示符,需使用@echo off
以關閉該條命令的回顯。
@ECHO off
ECHO Hello World!
PAUSE
實現範例
編輯#include <stdlib.h>
#include <stdio.h>
/* echo command-line arguments; 1st version */
int main(int argc, char *argv[])
{
int i;
for (i = 1; i < argc-1; i++)
{
printf("%s%s", argv[i], " ");
}
printf("%s%s", argv[argc-1], "\n");
return EXIT_SUCCESS;
}
Perl中的實現也很簡單:
#!/usr/bin/env perl
print join " ", @ARGV;
參考
編輯- ^ IEEE Std 1003.1, 2004, documentation for echo. [2013-04-15]. (原始內容存檔於2010-04-01).
外部連結
編輯- 單一UNIX®規範第7期,由國際開放標準組織發布(英文) : write arguments to standard output – 命令與工具(Commands & Utilities)參考,
- Microsoft TechNet上的Echo幫助(頁面存檔備份,存於網際網路檔案館)(簡體中文)