2016-10-15 3 views
0

루프 내가 점점 오전 오류에 사용 AIX에서 여러 파일의 이름을 변경하는 동안오류 동안

$ {FN/$ eisinno/$ efilename} ": 0403-011 지정된 대체는이 명령이 유효하지 않습니다

입력 파일 :.

raj_10576_INE728J01019_arya1.pdf 

ram_10576_INE728J01019_arya1.pdf 

rhaul_10576_INE728J01019_arya1.pdf 

sanjay_10576_INE728J01019_arya1.pdf 

dinesh_10576_INE728J01019_arya1.pdf 

Desir 에드 출력 파일 :

raj_10576_Remote_sag.pdf 

ram_10576_Remote_sag.pdf 

rhaul_10576_Remote_sag.pdf 

sanjay_10576_Remote_sag.pdf 

dinesh_10576_Remote_sag.pdf 

내 스크립트는 다음과 같다 :

#!/bin/bash 

eisinno="INE728J01019_arya1.pdf" 

evenno=10576 

efilename="remote_sag.pdf" 


cd /home/rishabh/$eveno 

for file in *_$eveno_*.pdf 

do 
    mv -i "${file}" "${file/$eveno_$eisinno/$eveno_remote_$efilename}" 

done 

을 친절하게 나에게 evenno의에서

+0

'bash'는 다음과 같은 메시지를 보내지 않습니다 ...이 메시지는'ksh'에서 왔습니다. –

+1

또한'evenno'와'eveno'는 다릅니다. 당신이 작성해야 할 것은'cd/home/rishabh/$ evenno'와'_ $ {evenno} _ * * .pdf' 파일입니다. –

답변

0

를 사용하여 이중 n 도움 사용은 어디 변수를 확인하기 위해 중괄호 끝 :

#!/bin/bash 
eisinno="INE728J01019_arya1.pdf" 
evenno=10576 
efilename="remote_sag.pdf" 

cd /home/rishabh/${evenno} 
for file in *_${evenno}_*.pdf; do 
    echo "Debug: ${file} ==> ${file/${evenno}_${eisinno}/${evenno}_remote_${efilename}}" 
    # Alternative: 
    echo ${file} | sed "s/${evenno}_${eisinno}/${evenno}_remote_${efilename}/" 

    mv -i "${file}" "${file/${evenno}_${eisinno}/${evenno}_remote_${efilename}}" 
done 
+0

아직 오류가 발생하지 않습니다 – Rishabh

+0

scr_test1.sh [8] : "디버그 : $ $ {file/$ {evenno} _ $ {evenno} _remote _ $ {efilename}}} ": 0403-011이 대체 명령은이 명령에 유효하지 않습니다. – Rishabh

+0

죄송합니다.'$ {eisinno /'는 $ {eisinno} /'여야합니다. 나는 그것을 고치고 대안을 추가했다. –