[英]bash implement variable in a directory
我有序列号:SX410-251509-0171
在我的代码中,我提取了两位数的年份(在上面的示例中为15)和两位数的星期(在上面的示例中为09),并希望在文件目录中使用它们。
#! /bin/bash
year=${serial:8:2}
week=${serial:10:2}
dir="/home/jbon/20$year/$week/$serial/run0/output_log"
echo $dir
运行此代码时,我得到以下输出:
/ run0 / output_log015 / 09 / SX410-251509-0171
我猜问题出在我如何使用字符串中的变量。
听起来您是使用sh
而不是bash
运行脚本,并且您的sh
链接到bash
以外的无法识别子字符串扩展运算符的外壳程序。 但是,您可以按照POSIX兼容的方式重写它:
yearweek=${serial##*AB} # Drop everything up to and including AB
yearweek=${yearweek%%-*} # Drop everything from - onward
year=${yearweek%??} # Drop the two-digit week
week=${yearweek#??} # Drop the two-digit year
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.