当前位置: 首页 > 知识库问答 >
问题:

用bash脚本中变量中的其他文本替换子字符串[复制]

花稳
2023-03-14

我一直在尝试写一个bash脚本。它的一部分应该用来代替字符串的一部分。

这就是我想做的

$dbname=$1
$dbNameActual="${$dbname/.sql/}"

date
echo $dbNameActual

我尝试了stack的一些建议。但什么都没有。我尝试添加sed,但似乎没有效果。

我的想法是,我有一个脚本,它接受一个db导入文件名,比如说db250317。sql和输出db250317

我正在运行Ubuntu 16.04 LTS。

共有1个答案

谷永贞
2023-03-14

表达式中没有两次放入$,也没有将$放在指定给的变量之前(这不是PHP或Perl)。应该是:

dbNameActual="${dbname/.sql/}"

此外,如果您试图删除的内容始终位于末尾,则可以使用%将其删除:

dbNameActual="${dbname%.sql}"

还记得在以后使用变量时引用它,以防文件名包含空格。你几乎应该总是引用变量,除非你有特定的理由不引用。

 类似资料:
  • 我有一个文本包含一些我想要标记的单词,要标记的单词包含在一个列表中。问题是其中一些单词是其他单词的子字符串,但我想从列表中标记最长的可识别字符串。 例如,如果我的文本是“foo和bar不同于foo bar。”我的列表包含“foo”、“bar”和“foo bar”,结果应该是“[tag]foo[/tag]和[tag]bar[/tag]不同于[tag]foo bar[/tag]。”

  • 我正在使用gradle和bash脚本在docker图像中构建几个android应用程序。该脚本由运行docker映像的jenkins触发。在bash脚本中,我收集有关构建成功的信息。我想将该信息传递给jenkinsfile的groovy脚本。我试图在docker容器中创建一个txt文件,但jenkinsfile中的groovy脚本找不到该文件。这是我的jenkinsfile的groovy脚本: 在

  • 我试图开发一个由多个数组和文本视图组成的应用程序,我遇到了一个问题。 我有3个文本视图和2个数组。 我的一个数组包含句子。我的第一个问题是如何突出每个句子中的特定单词?例如:“这是我的第一个数组项”,我需要突出显示字符串中的一个单词,这样当它显示在文本视图1中时,它就会像这样出现..."这是我的第一个数组物品" 我的另一个数组包含单词。它们显示在textview2中,也应高亮显示。我的下一个问题是

  • 问题内容: 我怎样才能做到这一点? 它将替换为文本。但是我想用变量的内容替换它。 我尝试过 它也不起作用。 问题答案: 您需要使用双引号: 您的单引号可防止将shell变量替换为其内容。

  • 测验sh包含: 我设置测试。sh至chmod 777 我用两个参数开始脚本: 然后我通过键入以下内容进行测试: 结果: 我做错了什么?

  • 问题内容: 我需要打开一个文本文件并替换一个字符串。我需要这个 到目前为止,这是我所拥有的,但是除了多余的空格外,我看不到文本文件中的任何更改。 我该怎么做? 问题答案: 这项工作: