当前位置:  技术问答>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有什么问题呢?

|
[和]的前后都要留个空格!

|
脚本中  “=”不允许出现空格哈。你要是有空格,他把空格也当成值的一部分。

当然提示没有该命令了。

"[" "]"这两个其实是也是命令哈。 命令两边必须有空格哈

你这里,[和]前后没有加空格


|
呵呵  该有空格的地方没空格 不该有空格的地方加了空格

|
问题很多:
my_path='pwd'  这里不应该是单引号,而是my_path=`pwd`,是键盘上1左边那个键,和~在一起的。
等号两边都不要留空格,否则tmpdir= "./bak",shell会以为./bak是一个新命令
中括号两边都要留出空格  if [ -d ./bak ]
-d ./bak 这里不要用引号

fi有问题是因为少了then
if [ -d ./bak ]
then  

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 红帽redhat下通过脚本和yum安装docker容器引擎的详细步骤
  • 脚本1调用脚本2,脚本2必须输入回车,如何在调用过程中自动输入回车
  • HTML 脚本语言介绍及<script>标签用法
  • 脚本中如何调用另外的一个脚本?
  • 脚本调用脚本出异常
  • shell 脚本中命令别名在脚本外无法使用
  • 想用shell脚本定时执行另一个脚本
  • shell脚本问题 关于父脚本和子脚本的问题
  • centos系统运行脚本,显示bash进程,能否以脚本名字显示?
  • 求救:修改系统启动脚本 不过脚本里面误写了阻塞命令
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • 定时跑脚本编译C文件就报错,手动跑脚本就编译成功了.
  • 脚本如何自动输入密码??交互式脚本如何编写?
  • 请问在 LINUX下如何编辑脚本(可以直接运行脚本访问WINDOW系统)
  • 请问在脚本里怎么得到一个程序运行的返回值,脚本怎么返回值?
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 请教一个问题,CRONTAB执行脚本和SSH登陆后调用脚本有什么不同?
  • windows上脚本调用UNIX的脚本
  • shell脚本如何调用另外一个shell脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3