当前位置: 技术问答>linux和unix
为什么脚本总是不对?
来源: 互联网 发布时间:2016-09-12
本文导语: 写了几行脚本,总是提示不对, #!/bin/bash my_path='pwd' tmpdir= "./bak" if[-d "./bak"] mkdir ./bak fi if[! -f "./bak/objlist.my"] file ./bak/bojlist.my fi 提示: ./back.sh: line 3: ./bak: is a directory ./back.sh: line 4: if[-d ./bak]: No...
写了几行脚本,总是提示不对,
#!/bin/bash
my_path='pwd'
tmpdir= "./bak"
if[-d "./bak"]
mkdir ./bak
fi
if[! -f "./bak/objlist.my"]
file ./bak/bojlist.my
fi
提示:
./back.sh: line 3: ./bak: is a directory
./back.sh: line 4: if[-d ./bak]: No such file or directory
mkdir: cannot create directory `./bak': File exists
./back.sh: line 6: syntax error near unexpected token `fi'
1、当前目录明明有bak这个目录啊?
2、如果在等号两边有空格,就说命令不存在?
3、fi有什么问题呢?
#!/bin/bash
my_path='pwd'
tmpdir= "./bak"
if[-d "./bak"]
mkdir ./bak
fi
if[! -f "./bak/objlist.my"]
file ./bak/bojlist.my
fi
提示:
./back.sh: line 3: ./bak: is a directory
./back.sh: line 4: if[-d ./bak]: No such file or directory
mkdir: cannot create directory `./bak': File exists
./back.sh: line 6: syntax error near unexpected token `fi'
1、当前目录明明有bak这个目录啊?
2、如果在等号两边有空格,就说命令不存在?
3、fi有什么问题呢?
|
[和]的前后都要留个空格!
|
脚本中 “=”不允许出现空格哈。你要是有空格,他把空格也当成值的一部分。
当然提示没有该命令了。
"[" "]"这两个其实是也是命令哈。 命令两边必须有空格哈
你这里,[和]前后没有加空格
当然提示没有该命令了。
"[" "]"这两个其实是也是命令哈。 命令两边必须有空格哈
你这里,[和]前后没有加空格
|
呵呵 该有空格的地方没空格 不该有空格的地方加了空格
|
问题很多:
my_path='pwd' 这里不应该是单引号,而是my_path=`pwd`,是键盘上1左边那个键,和~在一起的。
等号两边都不要留空格,否则tmpdir= "./bak",shell会以为./bak是一个新命令
中括号两边都要留出空格 if [ -d ./bak ]
-d ./bak 这里不要用引号
fi有问题是因为少了then
if [ -d ./bak ]
then
my_path='pwd' 这里不应该是单引号,而是my_path=`pwd`,是键盘上1左边那个键,和~在一起的。
等号两边都不要留空格,否则tmpdir= "./bak",shell会以为./bak是一个新命令
中括号两边都要留出空格 if [ -d ./bak ]
-d ./bak 这里不要用引号
fi有问题是因为少了then
if [ -d ./bak ]
then
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!