string - KornShell Printf - 填充字符串

标签 string shell unix scripting ksh

我正在尝试编写一个使用 printf 将字符串填充到特定宽度的 KornShell (ksh) 函数。

例子:

打电话

padSpaces Hello 10

输出

'Hello     '

我目前有:

padSpaces(){
        WIDTH=$2
        FORMAT="%-${WIDTH}.${WIDTH}s"
        printf $FORMAT $1
}

编辑:这本身似乎是有效的,但是当我在脚本中分配它时,它似乎失去了除第一个空格之外的所有内容。

TEXT=`padSpaces "TEST" 10`
TEXT="${TEXT}A"
echo ${TEXT}

输出:

TEST A

我也乐于接受不使用 printf 的建议。我真正想要的是一种从 ksh 制作固定宽度文件的方法。

最佳答案

你的功能对我来说很好用。您的作业不适用于等号周围的空格。应该是:

SOME_STRING=$(padSpaces TEST 10)

我也冒昧地替换了反引号。

您没有说明如何使用变量或如何获得所显示的输出。但是,您的问题可能是您需要引用变量。这是一个演示:

$ SOME_STRING=$(padSpaces TEST 10)
$ sq=\'
$ echo $sq$SOME_STRING$sq
'TEST '
$ echo "$sq$SOME_STRING$sq"
'TEST      '

关于string - KornShell Printf - 填充字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730183/

相关文章:

javascript - 在 vue 中作为 prop 传递的对象以字符串形式到达

windows - 并行运行带有循环变量的命令,最多同时运行 N 个

ubuntu - 使用 Gnuplot 制作多重折线图

linux - 使用另一个文件的引用替换特定的列值

c - 为什么父 pid 返回的值与 getpid() 不同?

regex - 将包含子字符串 'foo' 的文件重命名为 'bar'

c# - DateTime.ParseExact 返回 FormatException

jquery - 将查询字符串添加到 URL

javascript 在逗号后 chop 字符串

bash - 如何检查符号链接(symbolic link)是否指向空文件夹