分页: 1 / 1

mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-26 18:37
ayading826
mkdir.sh

执行 sh mkdir.sh xxx(参数)
错误提示:mkdirs.sh: 9: Syntax error: word unexpected (expecting "do")
请问有谁知道为什么吗?

root@ubuntu10:~# cat mkdirs.sh
#!/bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <[email protected]>
# Created: 1993-05-16
# Last modified: 1994-03-25
# Public domain
#
errstatus=0
for file in ${1+"$@"};do
set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
shift
pathcomp=
for d in ${1+"$@"} ; do
pathcomp="$pathcomp$d"
case "$pathcomp" in
-* ) pathcomp=./$pathcomp ;;
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp" 1>&2
case "$pathcomp" in
[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
;; # DOSISH systems
* ) mkdir "$pathcomp" || errstatus=$? ;;
esac
fi
pathcomp="$pathcomp/"
done
done
exit $errstatus

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 10:03
YeLee
这个确实是dash的问题,那么我就不解释了。 :em01 :em01 :em01

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 16:14
ayading826
YeLee 写了:这个确实是dash的问题,那么我就不解释了。 :em01 :em01 :em01
额,没明白什么意思,能讲具体一些吗 :em06 :em06 :em06

root@ubuntu10:~/shell# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2013-03-09 14:40 /bin/sh -> dash

sh确实链接到了dash,但是我把#! /bin/sh 改成#! /bin/bash ,然后用执行 bash mkdir.sh xxx 。还是那个错误啊。

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 16:53
麦斯特
我就猜,不同风格的换行绝对不会出问题的。

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 17:08
ayading826
麦斯特 写了:我就猜,不同风格的换行绝对不会出问题的。
你的意思是这些代码要全部自己在linux中环境敲一遍吗?

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 17:19
麦斯特
Hey guy, welcome to Linux.

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 17:26
ayading826
:em06 :em20 :em11
麦斯特 写了:Hey guy, welcome to Linux.

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 20:21
aerofox
ayading826 写了:
麦斯特 写了:我就猜,不同风格的换行绝对不会出问题的。
你的意思是这些代码要全部自己在linux中环境敲一遍吗?
那倒不用。转换成 UNIX 风格就可以了。可以用 dos2unix、fromdos 等命令转,也可以用 vim 编辑器转,或者再不清楚的,用鼠标中键粘贴到一个新的编辑窗口中。

Re: mkdir.sh Syntax error: word unexpected (expecting "do")

发表于 : 2013-03-27 22:23
ayading826
aerofox 写了:
ayading826 写了:
麦斯特 写了:我就猜,不同风格的换行绝对不会出问题的。
你的意思是这些代码要全部自己在linux中环境敲一遍吗?
那倒不用。转换成 UNIX 风格就可以了。可以用 dos2unix、fromdos 等命令转,也可以用 vim 编辑器转,或者再不清楚的,用鼠标中键粘贴到一个新的编辑窗口中。
:em11 :em11 :em11 非常感谢,这次没有错误了!!!