回文章列表
作者slchen1013.bbs@ptt.cc (aa) 看板: linux
標題[問題] bash script 無法做 cp
時間批踢踢實業 (2008/05/15 Thu 13:26:59)
Hi, 大家
今天真是見鬼了...

#!/bin/sh
JOB=$1
POTsrcdir=/opt/chem/MSI/MaterialsStudio/Data/Resources/Quantum/Castep/Potential
s/
m=`awk '/%BLOCK\ SPECIES_POT/ {print NR}' ${JOB}.cell`
n=`awk '/%ENDBLOCK\ SPECIES_POT/ {print NR}' ${JOB}.cell`

POTpos=$(($m+1))

for ((POTpos=$(($m+1)); POTpos<n; POTpos=POTpos+1 ))
do
   sedPOT=${POTpos}p
   POTname=`sed -n ${sedPOT} ${JOB}.cell | awk '{print $2}'`
   POTsrc=${POTsrcdir}${POTname}
   cp $POTsrc .
done

這段 code 主要是為了從某個檔案中找出特定檔名,再把它copy到現行目錄下,
可是執行後會出現

cp: cannot stat `/opt/chem/MSI/MaterialsStudio/Data/Resources/Quantum/Castep/Po
tentials/Ga_00.usp\r': No such file or directory
cp: cannot stat `/opt/chem/MSI/MaterialsStudio/Data/Resources/Quantum/Castep/Po
tentials/Ag_00.usp\r': No such file or directory
cp: cannot stat `/opt/chem/MSI/MaterialsStudio/Data/Resources/Quantum/Castep/Po
tentials/Te_00.usp\r': No such file or directory


檔案來源確實是存在的...

另外不曉得為什麼echo POTsrc 時看起來結果正確
可是 cp 時會在變數結尾多了一個 \r 的 escape character
另外我剛剛也沒查到 \r 在 bash script 裡代表了什麼...


懇請指點

謝謝


附上輸入檔的片段內容
%BLOCK SPECIES_POT
      Ga  Ga_00.usp
      Ag  Ag_00.usp
      Te  Te_00.usp
%ENDBLOCK SPECIES_POT

我就是要從這一個片段取出 Ga_00.usp 然後做複製的動作
script 中的 for loop 會自動把另外兩個 .usp 檔處理好...

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 163.13.111.50
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻