linux 如何在SH not bash中从字符串中删除子字符串

r55awzrz  于 2023-02-07  发布在  Linux
关注(0)|答案(1)|浏览(178)

我想修改一个SH脚本的输入参数(它以#!/bin/sh开头)。我找到了一些解决方案,但它们在这里不起作用,需要bash。它们给予我bad substitution错误。所以我寻找一个在SH(或其他名称)中起作用的解决方案
bash_params可以像“_learn _vil=bar _meet=foo”一样。这里“_learn”作为一个标志。我想根据这个标志设置一些变量,然后删除它,这样我就可以用eval设置其他变量。
另外,如果您知道更好的方法,请告诉我

case $bash_params in
  *"_learn"*) # learn is enabled
      _learn_sp=True
      tt="_learn"
      bash_params="${bash_params%"$tt"}" # it doesn't work
      bash_params="${bash_params/_learn//}" # this gives Bad substitution error

      _lsp=False
    ;;

eval ${bash_params}
pw9qyyiw

pw9qyyiw1#

管道至sed

bash_params=$(echo "$bash_params" | sed "s/$tt//")

相关问题