我已經看着從這個網站,手冊頁和谷歌閱讀文件,但不理解,我很抱歉,如果這已被回答。我無法將文件讀入我的腳本。我在linux中使用bash shell。我也是linux新手。不是一個有效的標識符錯誤與讀取命令
我有一個腳本,應該從文本文件中讀取,對每個指定的數據行執行測試,計算等。
我收到以下錯誤:./hw-script7b:第8行:讀:`hw7.list3':不是有效的標識符 hw7.list3是輸入文件。它具有完整的權限(讀,寫,甚至執行)hw-script7b是我的腳本。
該文本文件包含一個目錄的-ls列表。這可能是一個基本問題,但我迷路了。 感謝的任何援助,
黛比
這裏是腳本。
echo "start"
count=0 #counting all files
xcount=0 #counting executeable files
total=0 #counting total space used
temp=0 #holding place for file being checked
exec 9< $1
while read $1 $2 $3 $4 $5 $6 $7 $8 0<&9
do
count='expr $count + 1'
if [ $4 > "$temp" ]
then
lfname="$8"
linode="$1"
lsize="$4"
lrights="$2"
lmonth="$5"
lday="$6"
temp="$4"
else
if [ $4 < "$temp" ]
then
sfname="$8"
sinode="$1"
ssize="$4"
srights="$2"
smonth="$5"
sday="$6"
temp="$4"
fi
fi
#looking for executeable files
if [ -x "$8" ]
then
xcount='expr $xcount + 1'
fi
done
echo "The largest file is: "$lfile""
echo " Inode Size Rights Date "
echo " $linode $lsize $lrights $lmonth $lday"
echo
echo
echo "The smallest file is: "$sfile""
echo " Inode Size Rights Date "
echo " $sinode $ssize $srights $smonth $sday"
echo
echo
echo "The total number of files is "$count" and they use "$total" bytes."
echo
echo
echo "There are "$xcount" executable files."
exit 0
sample of input file: hw7.list3
934250 -rwxrwxr-x 1 1107 Dec 2 18:48 //home/others/professor/class-share/hw7.howard
7934314 -r-xr-xr-t 1 1232 Dec 2 18:48 //home/others/professor/class-share/Matts_HW6
7934139 -rwxrwxr-x 1 1232 Dec 4 20:08 //home/others/professor/class-share/Matts_HW6_2
7934366 -rwxrw-r-- 1 1537 Dec 9 19:32 //home/others/professor/class-share/bs-hw7
7934364 -rwx------ 1 965 Dec 9 19:48 //home/others/professor/class-share/hw7
7948204 -rwxr-xr-x 1 107 Nov 12 07:47 readtest1
7948209 -rwxr-xr-x 1 107 Nov 12 07:48 readtest1a
7948205 -rwxr-xr-x 1 140 Nov 12 07:48 readtest2
7948206 -rwxr-xr-x 1 160 Nov 12 07:48 readtest3
7948207 -rwxr-xr-x 1 165 Nov 12 07:48 readtest4
7948208 -rwxr-xr-x 1 211 Nov 12 07:48 readtest5
7948210 -rwxr-xr-x 1 8 Nov 12 07:49 namefile1
7948211 -rwxr-xr-x 1 17 Nov 12 07:49 namefile2
7948212 -rwxr-xr-x 1 28 Nov 12 07:49 namefile3
7932451 -rwxr--r-- 1 219 Nov 13 16:53 //home/others/professor/class-share/grades-text
7934113 -rw-r--r-- 1 111 Nov 18 17:27 //home/others/professor/class-share/test2.gz
我不確定我們是否可以發佈腳本。我發佈了。我正在閱讀的文件是一個目錄的ls -il文本文件。我把它叫做hw7.list3,但是下面的評論提到這個點可能會導致問題,所以我把它重命名爲hw7list3。現在我沒有得到錯誤,但沒有輸出。研究更多。 – debster
您是否假設'read foo'會從名爲'foo'的文件中讀取?它不會;它從標準輸入(通常是鍵盤)讀入一個名爲'$ foo'的*變量*。使用與文件同名的變量沒什麼意義。你想做什麼? –
我們剛剛瞭解到,您可以重定向stdin以從文件而不是鍵盤獲取信息。我們需要使用這個文件,並找到最大的文件,最小的文件,並計算使用的空間和文件數量。還有其他一些事情我們也需要做。我似乎無法將文件讀入變量,儘管我似乎已將它設置爲類中的示例。 – debster