我怎样才能printf
打印一行减号?
当我尝试时:printf "-----------\\n"
我得到:
bash: printf: - : invalid option
printf: usage: printf [-v var] format [arguments]
当我尝试时:printf "\-\-\-\-\-\-\-\-\-\-\-\\n"
我得到:\-\-\-\-\-\-\-\-\-\-\-
答案1
printf()
如果不使用格式说明符,这是一种极其低效的使用方式。通常,您可以定义它们来了解正在格式化的输出类型。它应该写成
printf '%s\n' "-----------"
这样, 就可以将字符串类型与采用字符串关键字 ( ) 的格式说明符printf
相匹配。 after说明符的意思是在打印字符串后添加新行。-----------
%s
\n
通过尝试您所拥有的,当发生引号删除时,printf
会将破折号解释为其命令行标志之一,它会这样做不是理解。
另一种做法是让 printf
知道它的命令行参数是完整的,并将其后面的内容解释为它的参数。大多数 shell 内置命令和/或外部命令通过在--
命令关键字后添加后缀来支持这一点,即
printf -- "-----------\n"