私は1つのコマンド持っている(動作しますが、すべてがスクリプトが実行されているターミナル出力からのコピー&ペーストである):なぜですか? CP:--parentsで、先はディレクトリでなければなりません
cp --parents mcare.properties /mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
そして、このコマンドがあります変数をスクリプトで実行される代わりに、ファイル名またはディレクトリと、それはこのように見ている(そしてこの1つは動作していない):
cp --parents $source $destination
ログのすべての変数であるかを確認するには:
source=mcare.properties
pwd:
/mnt/hgfs/Shared-workspace/Workspaces-CVS/Release-CRMT-mcare/mCare/config/UAT/home/wlp/mcare/WEB-INF/classes
total 16
-rwxrwxrwx. 1 root root 6724 Feb 29 19:50 activareCont.properties
drwxrwxrwx. 1 root root 0 Feb 29 20:10 CVS
-rwxrwxrwx. 1 root root 2333 Aug 25 17:55 externalpartner.properties
-rwxrwxrwx. 1 root root 1764 May 26 10:36 login.properties
-rwxrwxrwx. 1 root root 10068 Aug 25 17:55 mcare.properties
-rwxrwxrwx. 1 root root 8551 May 27 16:04 msite.properties
config/UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
medium=UAT
/mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
cp: with --parents, the destination must be a directory
Try `cp --help' for more information.
コードスニペット自体:
cd $SOURCE/"${line%mcare*}"
source="mcare.properties"
echo source=$source
echo "pwd:"
pwd
ls -l
echo $line
medium="${line#*config/}"
echo $medium
medium="${medium%/home*}"
echo medium=${medium}""
destination=$DEST/msite-binaries-$medium/mcare/WEB-INF/classes
echo $destination
cp --parents $source $destination
私はこれだけの条件では、この問題を発生するので、私は自分のコードの一部を掲載しました。私はそれを他の方法で説明できるかどうかはわかりません。
bash -xスクリプト名を実行した後にCharles Duffyに返信します。その場所で実行される同じライン(PWD)、それはseparatly、Iは、端末でそれを実行した場合に動作している:私はhttp://www.shellcheck.net/に走っ
+ cd /mnt/hgfs/Shared-workspace/Workspaces-CVS/Release-CRMT-mcare/mCare/config/UAT/home/wlp/mcare/WEB-INF/classes/
+ source=mcare.properties
+ echo source=mcare.properties
source=mcare.properties
+ echo pwd:
pwd:
+ pwd
/mnt/hgfs/Shared-workspace/Workspaces-CVS/Release-CRMT-mcare/mCare/config/UAT/home/wlp/mcare/WEB-INF/classes
+ ls -l
total 16
-rwxrwxrwx. 1 root root 6724 Feb 29 19:50 activareCont.properties
drwxrwxrwx. 1 root root 0 Feb 29 20:10 CVS
-rwxrwxrwx. 1 root root 2333 Aug 25 17:55 externalpartner.properties
-rwxrwxrwx. 1 root root 1764 May 26 10:36 login.properties
-rwxrwxrwx. 1 root root 10068 Aug 25 17:55 mcare.properties
-rwxrwxrwx. 1 root root 8551 May 27 16:04 msite.properties
+ echo config/UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
config/UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
+ medium=UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
+ echo UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
+ medium=UAT
+ echo medium=UAT
medium=UAT
+ destination=/mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
+ echo /mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
/mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
+ cp --parents mcare.properties /mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
cp: with --parents, the destination must be a directory
Try `cp --help' for more information.
コードスニペット:
cd /mnt/hgfs/Shared-workspace/Workspaces-CVS/Release-CRMT-mcare/mCare/config/UAT/home/wlp/mcare/WEB-INF/classes/ || exit
source="mcare.properties"
line=config/UAT/home/wlp/mcare/WEB-INF/classes/mcare.properties
echo source=$source
DEST=/mnt/hgfs/Shared-workspace/Release/CRMT-mcare
echo "pwd:"
pwd
ls -l
echo $line
medium="${line#*config/}"
echo $medium
medium="${medium%/home*}"
echo medium=${medium}""
destination=$DEST/msite-binaries-$medium/mcare/WEB-INF/classes
echo $destination
declare -p destination
cp --parents $source $destination
は、テキストではない画像としてテキストファイルを投稿してくださいそれは/貼り付けをコピーすることは不可能で読み取ることが恐ろしいです。 –
それだけでなく、私たちがリンクをたどることなく理解できない質問を許可した場合、私たちのQ&A知識ベースはlinkrotのために崩壊するでしょう。私たちはこれを最後まで続けようとしています。したがって、質問は自己完結型でなければなりません。 –
...関連するクローズ理由を引用するには: "デバッグヘルプを求める質問("なぜこのコードは機能しませんか? ")には、目的の動作、特定の問題またはエラー、およびそれを再現するのに必要な最短コードが含まれている必要があります。質問自体** "。 –