当存储在shell脚本中的变量中时,将删除右边距空格

时间:2015-01-28 08:51:11

标签: shell

我是shell脚本新手。我正在努力解决这个问题。

我做了以下事情:

tlswrk41> myvar=6042811103
tlswrk41> printf "%-25d" $myvar
6042811103               tlswrk41@illin2510!TLS:tlswrk41>

打印含义空格,但是当我将其存储在变量中时,空格被删除(在给定左侧垫代码的情况下会有效):

   tlswrk41> myvar=6042811103
   tlswrk41> myvar1=`printf "%-25d" $myvar`
   tlswrk41> tlswrk41> echo "$myvar1"
   6042811103
   tlswrk41>

-----左键垫------------

tlswrk41> myvar=6042811103strong text
tlswrk41> myvar1=`printf "%25d" $myvar`
tlswrk41> echo "$myvar1"
           6042811103
tlswrk41>

2 个答案:

答案 0 :(得分:0)

您可以使用printf -v

myvar="6042811103"
printf -v myvar1 "%25d" "$myvar"
echo "[$myvar1]"
[               6042811103]

OR:

printf -v myvar1 "%-25d" "$myvar"
echo "[$myvar1]"
[6042811103               ]

我使用[]来显示前后空格。


编辑:如果printf -v不受支持,请使用:

myvar1=$(printf "%-25d" "$myvar")

答案 1 :(得分:0)

最后我找到了最简单的方法:

排版。对于上述内容:typeset -L25 myvar="6042811103";

-L - >它会在变量的末尾添加空格 -R - >它会在变量的开头添加空格