C. *_*oss 3 unix string shell scripting ksh
我正在尝试编写一个使用printf将字符串填充到特定宽度的KornShell(ksh)函数。
例子:
呼叫
padSpaces Hello 10
Run Code Online (Sandbox Code Playgroud)
输出量
'Hello '
Run Code Online (Sandbox Code Playgroud)
我目前有:
padSpaces(){
WIDTH=$2
FORMAT="%-${WIDTH}.${WIDTH}s"
printf $FORMAT $1
}
Run Code Online (Sandbox Code Playgroud)
编辑:这似乎是在工作本身,但是当我在脚本中分配它时,它似乎失去了除了第一个空格以外的所有内容。
TEXT=`padSpaces "TEST" 10`
TEXT="${TEXT}A"
echo ${TEXT}
Run Code Online (Sandbox Code Playgroud)
输出:
TEST A
Run Code Online (Sandbox Code Playgroud)
我也欢迎不使用printf的建议。我真正想了解的是一种从ksh制作固定宽度文件的方法。
您的功能对我来说很好。您的分配不适用于等号周围的空格。它应该是:
SOME_STRING=$(padSpaces TEST 10)
Run Code Online (Sandbox Code Playgroud)
我也自由地更换了反引号。
您没有显示如何使用变量或如何获得显示的输出。但是,您的问题可能是您需要引用变量。这是一个示范:
$ SOME_STRING=$(padSpaces TEST 10)
$ sq=\'
$ echo $sq$SOME_STRING$sq
'TEST '
$ echo "$sq$SOME_STRING$sq"
'TEST '
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14308 次 |
| 最近记录: |