不是有效的标识符

不是有效的标识符

我已经调查了从这个网站,网页和谷歌阅读文件,但不理解,我很抱歉,如果这已经得到答复。我在将文件读入脚本时遇到问题。我在linux中使用bash shell。我也是linux新手。
我有一个脚本,它应该从文本文件中读取,对指定的每个数据行执行测试、计算等。
我收到以下错误:./hw-script7b:第8行:read:`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

最佳答案

我在运行一个脚本时也遇到了类似的问题。我的脚本显示正在运行的进程id,并提示用户输入其中一个进程id。我搞错了
':不是有效的标识符:read:`userPid
这是因为当我们将脚本从windows scp到unix时,脚本中添加了一些特殊字符。
我做了以下的工作,效果很好。
sudo yum安装dos2unix
dos2unix脚本文件.sh
然后运行脚本。它没有问题。

10-06 09:23