【问题标题】:How to convert a string in variable in shell如何在shell中转换变量中的字符串
【发布时间】:2020-12-01 09:15:00
【问题描述】:
set lamdrills = ("drill_1-2" drill_2-3")
set drill_1_2_fill_layers = ("cvf1") #input from other files
set span = `echo "$lam_drl" | cut -f2 -d'_'`
set startspan = `echo "$span" | cut -f1 -d'-'`
set endspan = `echo "$span" | cut -f2 -d'-'`
set fill_layers = `echo drill_"$startspan"_"$endspan"_fill_layers`

我想将 Drill_1_2_fill_layers 分配给 fill_layers

【问题讨论】:

  • 是的。我正在使用 .csh 文件。 set Drill_1_2_fill_layers = ("cvf1") set Drill_2_3_fill_layers = ("cvf2" ) 在另一个文件中,我在另一个脚本中调用了这个文件。但是根据 lamdrills 的值,填充层的值要分配。
  • 不太清楚你在问什么。如果你想set fill_layers = $drill_1_2_fill_layers 为什么不这样做呢?
  • 缺少一个引用,显然您的意思是set lamdrills = ("drill_1-2" "drill_2-3") ... 可能还有set span = `echo "$lamdrills" | cut -f2 -d'_'`
  • 对于“drill_1-2”lamdrill,我想将 fill_layers 分配为 $drill_1_2_fill_layers,对于“drill_2-3”lamdrill,我想将 fill_layers 分配为 $drill_2_3_fill_layers。另一个例子,如果 lamdrill 是 Drill_6-7,我想将 ill_layers 指定为 $drill_6_7_fill_layers。这里startspan是6,endspan是7。所以我从lamdrills创建了填充层。现在按照上面的代码,fill_layers 变量分配为“drill_1_2_fill_layers”[string] 而不是“cvf1”
  • edit 更新您的问题。可能还会修复我报告的拼写错误,除非这些是您要询问的实际问题。

标签: shell csh


【解决方案1】:

看起来有点像你在找的东西

set lamdrills = ("drill_1-2" "drill_2-3")  # typo fixed
foreach drill ($lamdrills)                 # loop over array
  set fill_layers = drill_`echo $drill | sed 's/.*_//;s/-/_/'`_fill_layers
  # ... use this variable
end

C shell 复杂且不受欢迎 (for good reasons);也许您想改用与 Bourne 兼容的 shell?

for drill in "drill_1-2" "drill_2-3"; do
  fill_layers="drill_$(echo "$drill" | sed 's/.*_//;s/-/_/')_fill_layers"
  # ... use "$fill_layers"
done

当然,如果您使用的标签始终使用相同的约定和标点符号模式,那就更好了。

【讨论】:

  • 设置 fill_layers = Drill_echo $drill | sed 's/.*_//;s/-/_/_fill_layers。此行帮助我创建“drill_1_2_fill_layers”名称。但无法将“drill_1_2_fill_layers”值 [cvf1] 分配给 fill_layers。
  • 如果有一天你能在你的问题中拼出你真正想问的问题,也许它会足够清楚,我也能理解和回答。如果您有新问题,可能(接受此答案并)提出新问题。
猜你喜欢
  • 2012-11-02
  • 2021-10-25
  • 1970-01-01
  • 2011-03-30
  • 2018-01-23
  • 2022-01-14
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多