我正在尝试编写一个shell脚本来为我移动一些文件,但我错误地运行了所述脚本而没有仔细检查它首先使用的变量。
这是我写的剧本:
#!/bin/bash
# move the war files to jboss in one thing
JBOSS_DEPLOY="/cust/env/local/cust/jboss-5.1.0.GA/server/default/deploy/"
echo JBOSS_DEPLOY
TRADITIONAL="$JBOSS_DEPLOYmyProject.war"
NOSQL="$JBOSS_DEPLOYmyProjectNoSql.war"
echo $TRADITIONAL
mv myProject.war $TRADITIONAL
mv myProjectNoSql.war $NOSQL
回声用于调试目的。似乎"$JBOSS_DEPLOYmyProject.war"
变为".war"
。我需要修复什么才能将这些字符串正确地连接成一个新变量?
我对文件的实际位置也有点好奇。显然他们会相互覆盖,但在某个地方应该有一个名为".war"
的文件,对吧?它会在哪里?
"."
会将其隐藏起来。现在我只需要知道如何正确连接没有空格的字符串!
答案 0 :(得分:5)
Bash无法告知变量名称的结束位置以及明文开始的位置,除非您提供一个提示:
"$FOObar" # variable named "FOObar"
# v.s.
"${FOO}bar" # variable named "FOO" and some plaintext "bar"