나는 하나 개의 명령이 (작동하지만, 모든 스크립트가 실행되는 터미널 출력에서 복사 - 붙여 넣기입니다) :왜?! CP : --parents으로, 대상은 디렉토리 여야합니다
cp --parents mcare.properties /mnt/hgfs/Shared-workspace/Release/CRMT-mcare/msite-binaries-UAT/mcare/WEB-INF/classes
그리고이 명령은 대신 파일 이름의 변수 나 디렉토리와 스크립트에 의해 실행과는 다음과 같이보고있다 (이 하나가 작동하지 않습니다) :
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.
:
cp --parents $source $destination
로그는 모든 변수에 무엇을보고
코드 조각 자체가 : 만이 조건에서이 문제를 발생하기 때문에
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, 노력 : 나는 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로 인해 분리됩니다. 우리는 이것을 지속하기 위해 노력하고 있습니다. 따라서 질문 자체는 필수적입니다. –
... 관련 종료 이유를 인용하십시오. "디버깅 도움말을 찾는 질문 ("이 코드가 작동하지 않는 이유는 무엇입니까? ")에는 원하는 동작, 특정 문제 또는 오류 및이를 재현하는 데 필요한 가장 짧은 코드가 포함되어야합니다. ** 질문 자체 ** ". –