0

いくつかのファイルを移動するシェル スクリプトを作成しようとしていましたが、最初に使用している変数を再確認せずにそのスクリプトを実行するというミスを犯しました。

ここに私が書いているスクリプトがあります:

#!/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"どこかに名前が付けられた 1 つのファイルがあるはずですよね? それはどこでしょうか?

編集:どこに置かれたかを見つけました。"."がそれを隠してしまうとは思いもしませんでした。スペースなしで文字列を適切に連結する方法を知る必要があります。

4

1 に答える 1

5

Bash は、ヒントを提供しない限り、変数名がどこで終わり、平文がどこから始まるかを知る方法がありません。

"$FOObar"   # variable named  "FOObar"
# v.s.
"${FOO}bar"  # variable named "FOO" and some plaintext "bar"
于 2013-04-23T19:25:04.490 に答える