[問題] bash script 無法做 cp
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
推
05/15 15:29, , 1F
05/15 15:29, 1F
→
05/15 15:29, , 2F
05/15 15:29, 2F
討論串 (同標題文章)
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章