我正在尝试编写一个 KornShell (ksh) 函数,该函数使用 printf 将字符串填充到特定宽度。
例子:
Call
padSpaces Hello 10
Output
'Hello '
我目前有:
padSpaces(){
WIDTH=$2
FORMAT="%-${WIDTH}.${WIDTH}s"
printf $FORMAT $1
}
Edit:这本身似乎是有效的,但是当我在脚本中分配它时,它似乎失去了除了第一个空格之外的所有内容。
TEXT=`padSpaces "TEST" 10`
TEXT="${TEXT}A"
echo ${TEXT}
Output:
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 '
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)