2014-10-16 2 views
0

'에있는 단어의 첫 글자를 대문자로 쓰는 스크립트는 각 단어의 첫 번째 글자가 대문자가되도록 mysql 데이터베이스의 테이블 이름을 변경하려고합니다. 예를 들어 "renametable"이라는 테이블은 "RenameTable"이됩니다. 올바른 데이터베이스에서 테이블 이름을 가져 와서 관리하는 동료 스크립트를 두 개 가지고 있지만 서버를 변경 한 후에는 더 이상 작동하지 않습니다. 나는 무엇이 바뀌 었는지 잘 모르겠습니다. 그래서 당신이 나를 도울 수 있기를 대비해서 여기에 대본을 게시 할 것입니다.파일 이름

우선은/루트 폴더에이 스크립트를 배치했다 데이터이고, 는 MySQL 데이터베이스 폴더로 이동하여 실행

ls -1 | xargs -i /root/rename2.sh {} 

rename2.sh :

force=`echo $1 | tr [:upper:] [:lower:]` 
if [ -f $1 ];then 
mv $1 $force 
fi 

그 후 다른 명령을 실행해야했습니다.

ls -1 ../<gooddb> | xargs -i /root/rename.sh {} 
gooddb 올바른 테이블 명명 구조의 데이터베이스입니다 0

rename.sh :

: not founde2.sh: 2: /root/rename2.sh: 
/root/rename2.sh: 7: /root/rename2.sh: Syntax error: end of file unexpected (expecting "then") 

그리고 : 이제 내가 오류를 얻을 첫 번째 명령을 실행할 때

#!/bin/sh 

lower=`echo $1 | tr [:upper:] [:lower:]` 

if [ -f $lower ];then 
mv $lower $1 
fi 

이후 두 번째 명령의 오류 :

xargs: /root/rename.sh: No such file or directory file 

두 파일을 완벽하게 제어 할 수는 있지만

+0

"seedoneat"을 어떻게 구문 분석하겠습니까? "SeeDonEat"또는 "SeedOneAt"입니까? 그럼에도 불구하고, 이것 :'],'이 문제가 될 것입니다. 그때'.. – twalberg

답변

1

이는 덮어 라인과 같습니다

: not founde2.sh: 2: /root/rename2.sh: 

윈도우 라인이 종료 ($'\r') 참여, 아마?

관련 문제