如何在c shell中打印3位数字?

时间:2017-04-05 04:33:54

标签: csh

我想在c shell中打印3位数字,如001,002,...不是1,2,...

但是当我使用下面的例子时,我的数字只有3位数。

所以我想知道如何将3位数字打印为001而不是1。

如何在c shell中用3位数字打印?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
        </layout>
    </appender>

    <appender name="WINFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>C:/logs/logfile.log</File>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
        </layout>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>C:/logs/logfile-%d{yyyy-MM-dd}-%i.txt</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>2MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>


    <root level="debug">
        <appender-ref ref="STDOUT" />
         <appender-ref ref="WINFILE" />
    </root>

</configuration>

结果

0

1

...

100

...

400

更新

还有一个问题。如果我想将它指定为“printf'Welcome%03d times'$ j”本身的差异。 像这样,

#!/bin/csh -f

 set j = 1
 while ( $j <= 400 )
   echo "Welcome $j times"
   @ j++
 end

如果我想将3digit数分配给k方差,就像这样k = 003而不是k = 3。 我该怎么办?

UPDATE2

当我运行下面的代码时,我总是万不得增加。

 set j = 1
 set k

 while ( $j <= 400 )
   printf 'Welcome %03d times' $j
   k = printf 'Welcome %03d times' $j

   @ j++
 end

2 个答案:

答案 0 :(得分:0)

#!/bin/csh -f

 set j = 1
 while ( $j <= 400 )
   printf 'Welcome %03d times' $j
   @ j++
 end

不确定csh,但它应该可以正常工作

答案 1 :(得分:0)

对于你的第一个问题,答案是亚历山大写的:

  

#!/ bin / csh -f

     

设置j = 1
   而($ j <= 400)
     printf&#39;欢迎%03d次&#39;附加$ J
     @ j ++
   结束

对于你的第二个问题,你可以这样做:

  

&GT; set test =`perl -e&#39; print(sprintf(&#34;%03d&#34;,3))&#39;`
  &GT; echo $ test
  003

http://www.brendangregg.com/Guess/guess.csh
为了将vars传递给perl one liner,请参见下面的行
How do I best pass arguments to a Perl one-liner?