簡體   English   中英

bash實現目錄中的變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM