【问题标题】:Shell scripting : split an output and assign it to different variablesShell 脚本:拆分输出并将其分配给不同的变量
【发布时间】:2014-01-29 09:53:41
【问题描述】:

我有如下命令/脚本的输出...

63-19:48:47

我想要一个脚本来读取它并将其打印为 63 天 19 小时 48 分 47 秒。

如果只是 19:48:47,那么我希望将相同的脚本打印为 19 小时 48 分 47 秒。

有没有办法拆分输出并将其分配给不同的变量以实现上述结果或通过其他一些人?...请帮帮我。

【问题讨论】:

  • 您使用的是哪个外壳?重击?
  • 壳=/bin/ksh。如果有帮助,请告诉我。

标签: shell variables eval output


【解决方案1】:
echo 63-19:48:47 | tr ':-' ' ' |read a b c d

或者如果参数数量不严格(3或4):

set `echo 63-19:48:47 | tr ':-' ' '`
if [ -z "$4" ]
then
  day="$1"
  shift
fi
hour="$1"
min="$2"
sec="$3"

【讨论】:

  • tr: Not a known flag: : tr: 0653-712 选项和字符串参数的组合是不合法的。用法:tr [ -[c|C] | -[c|C]ds | -[c|C]s | -ds | -s ] [-A] String1 String2 tr { -[c|C]d | -[c|C]s | -d | -s } [-A] 字符串1
  • 我得到了上面的输出
  • 我用的和上面一样。我的输出是上面的
  • 对不起!我打错了。请查看我的编辑并注意现在是:-,而不是-:。再次抱歉
猜你喜欢
  • 2013-04-10
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 2018-03-12
  • 2011-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多