AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1253706
Accepted
TADASUKE
TADASUKE
Asked: 2020-06-26 07:11:46 +0800 CST2020-06-26 07:11:46 +0800 CST 2020-06-26 07:11:46 +0800 CST

“printf”格式:“空格”和“%-s\n”

  • 772

我正在学习 shell 脚本。在某些教程中有一个我无法理解的示例行。谁能告诉我下面代码中第一行的含义?

format="%8s%10s%10s   %-s\n"
printf "$format" "Dirs" "Files" "Blocks" "Directory"

total_dirs=$(find $HOME -type d | wc -l)
total_files=$(find $HOME -type f | wc -l)
total_blocks=$(du -s $HOME)

printf "$format" $total_dirs $total_files $total_blocks

我的问题是关于拳头线的下半场。

  1. 关于“空间”的使用:

如果 $3 和 $4 之间有 3 个空格,那么输出的行在 $3 和 $4 之间也有 3 个空格?

  1. 关于“%-s\n”部分:

此示例代码中的“-(连字符)”是什么意思?即使我删除了它,我也得到了相同的输出结果。

scripts command-line gnome-terminal bash gnome-shell
  • 1 1 个回答
  • 2863 Views

1 个回答

  • Voted
  1. Best Answer
    steeldriver
    2020-06-26T07:32:57+08:002020-06-26T07:32:57+08:00

    bash shell 内置从相应的C例程继承其格式说明符,因此最有用的参考通常是man 3 printf. 从那里:

    1. 是的,任何不属于格式说明符的字符都会按字面意思打印
       Format of the format string
           The format string is a character string, beginning and  ending  in  its
           initial  shift state, if any.  The format string is composed of zero or
           more  directives:  ordinary  characters  (not  %),  which  are   copied
           unchanged  to the output stream; and conversion specifications, each of
           which results in fetching zero or more subsequent arguments.  Each con‐
           version specification is introduced by the character %, and ends with a
           conversion specifier.  In between there may be (in this order) zero  or
           more  flags, an optional minimum field width, an optional precision and
           an optional length modifier.
    
    1. 它指定该值应左对齐
       -      The converted value is to be left adjusted on the  field  bound‐
              ary.  (The default is right justification.)  The converted value
              is padded on the right with blanks, rather than on the left with
              blanks or zeros.  A - overrides a 0 if both are given.
    
    • 1

相关问题

  • 如何从命令行仅安装安全更新?关于如何管理更新的一些提示

  • 如何从命令行刻录双层 dvd iso

  • 如何从命令行判断机器是否需要重新启动?

  • 文件权限如何工作?文件权限用户和组

  • 如何在 Vim 中启用全彩支持?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve