【问题标题】:BASH printf function to print variable containing an asterisk symbolBASH printf 函数打印包含星号的变量
【发布时间】:2013-04-11 06:08:47
【问题描述】:

我试图让 printf 函数打印出一行带有存储值的变量,其中一个变量可能包含一个星号。使用 printf 的原因是我可以遵循 limits.conf 文件中已有的格式样式,将每个变量固定在指定的空间量中。它适用于“*”以外的任何内容。

printf "#"'%-15s %-7s %-15s %-8s\n' $domain $type $item $value >> ~/etc/security/limits.conf

比如说: 域=* 类型=硬 项目=核心 价值=100

执行此操作时,我奇怪地在limits.conf 文件中获得了我所有目录的列表,即使域的值为“*” 完全不确定是否有解决方法。希望有人能帮忙!提前致谢!

条目外观示例:

#<domain>      <type>  <item>         <value>
#

#*               soft    core            0

【问题讨论】:

    标签: bash printf


    【解决方案1】:

    试试这个方法:

    printf "#"'%-15s %-7s %-15s %-8s\n' "$domain" "$type" "$item" "$value" >> ~/etc/security/limits.conf
    

    这应该可以保护 * 免受文件名扩展 - 这就是您所看到的。它还可以防止其他问题。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 1970-01-01
      • 2015-02-01
      • 2018-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多