Bash

Printf - 列印重複的減號

  • December 26, 2018

如何使用printf列印一行減號?

當我嘗試時:printf "-----------\\n"

我得到:

bash: printf: - : invalid option
printf: usage: printf [-v var] format [arguments]

當我嘗試時:printf "\-\-\-\-\-\-\-\-\-\-\-\\n"

我得到:\-\-\-\-\-\-\-\-\-\-\-

printf()在不使用格式說明符的情況下,這是一種極其低效的使用方式。您通常定義它們以告知正在格式化的輸出類型。它應該寫成

printf '%s\n' "-----------"

使得作為字元串類型與採用字元串關鍵字 ( )的格式說明符printf相匹配。說明符之後的意思是,在列印字元串後添加新行。-----------``%s``\n

通過您所擁有的嘗試,當引號刪除發生時,printf將破折號解釋為它不理解的命令行標誌之一

另一種 hacky 方法是讓它 printf知道它的命令行參數是完整的,並將它後面的內容解釋為它的參數。大多數 shell 內置和/或外部命令通過--在命令關鍵字後添加後綴來支持這一點,即

printf -- "-----------\n"

引用自:https://unix.stackexchange.com/questions/490933