具有特定格式字符串的 printf 快捷命令

Ver*_*era 1 bash printf text-formatting

我想使用printf带有特定格式字符串的快捷命令,并提出了以下内容。

local PF="printf %s\n"
$PF "Some Text"
Run Code Online (Sandbox Code Playgroud)

它完成了这项工作,但想知道使用这种方法时是否存在任何警告,这可能会导致格式字符串的误解。

cas*_*cas 5

  1. 当您可以只使用函数时为什么要执行变量的值 - 这就是它们的用途。

    PF() { printf "%s\n" "$@" ; }
    PF "Some Text"
    
    Run Code Online (Sandbox Code Playgroud)

    或别名:

    alias PF='printf "%s\n"'
    PF "Some Text"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您确实想使用变量,请使用它来保存格式字符串。例如

    fmt="%s\n"
    printf "$fmt" "Some Text"
    
    Run Code Online (Sandbox Code Playgroud)

    如果您希望将行长度保持在 80 个字符以下,则可以在两个或多个语句中分配变量。例如

    fmt="......part1......"
    fmt+="......part2......"
    fmt+="......part3......"
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    如果您只想使分配的格式字符串更具可读性,或者添加有关部分或全部部分的单独注释,这也很有用。