我一直在尝试编写一个bash脚本。它的一部分应该用什么都不替换字符串的一部分。
这是我正在尝试做的事情
$dbname=$1
$dbNameActual="${$dbname/.sql/}"
date
echo $dbNameActual
我尝试了一些堆栈的建议。但无处可去。我尝试添加sed,但这似乎不起作用。
我的想法是我有一个脚本,它接受一个数据库导入文件名,比如说db250317.sql
并输出db250317
。
我正在运行 Ubuntu 16.04 LTS 。
答案 0 :(得分:3)
您不必在表达式中放置$
两次,并且不要将$
放在您指定的变量之前(这不是{t}} PHP或Perl)。它应该是:
dbNameActual="${dbname/.sql/}"
此外,如果您尝试删除的内容始终在最后,您可以使用%
将其删除:
dbNameActual="${dbname%.sql}"
还记得在以后使用它时引用该变量,以防文件名包含空格。你应该几乎总是引用变量,除非你有特殊的理由不这样做。