bash script 無法做 cp - Linux

By Connor
at 2008-05-15T13:26
at 2008-05-15T13:26
Table of Contents
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 檔處理好...
--
今天真是見鬼了...
#!/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 檔處理好...
--
Tags:
Linux
All Comments

By Caroline
at 2008-05-20T10:47
at 2008-05-20T10:47
Related Posts
Ubuntu無線網路的怪問題

By Annie
at 2008-05-15T12:15
at 2008-05-15T12:15
bash script 中變數跟字面常數相加的問題

By Vanessa
at 2008-05-15T10:18
at 2008-05-15T10:18
如何架設Mail server for linux

By Oliver
at 2008-05-15T08:36
at 2008-05-15T08:36
fedora9新功能?

By Lucy
at 2008-05-15T07:44
at 2008-05-15T07:44
筆電+ubuntu7.10無線上網 抓不到網卡 뼠…

By Tracy
at 2008-05-14T23:48
at 2008-05-14T23:48