当前位置:  技术问答>linux和unix

shell脚本出错

    来源: 互联网  发布时间:2016-10-12

    本文导语:  #! /bin/bash find() { for file in 'ls $1' do if [ -d $1/$file ];then find $1/$file else echo $1/$file fi done } DIR=~/MyTest find $DIR 打印MyTest目录所以文件,这哪里错了? 报了这错误 pubuntu@pubuntu:~$ sh fa.sh [: 14: /home/pubuntu/MyTest/ls: u...


#! /bin/bash
find()
{
for file in 'ls $1'
do
if [ -d $1/$file ];then
find $1/$file
else
echo $1/$file
fi
done
}
DIR=~/MyTest
find $DIR

打印MyTest目录所以文件,这哪里错了?
报了这错误

pubuntu@pubuntu:~$ sh fa.sh
[: 14: /home/pubuntu/MyTest/ls: unexpected operator

|
1.

for file in 'ls $1'
改成
for file in `ls $1`
正确的是反单引号`` 而非单引号''

2.推荐不要使用和系统命令一样名字的函数名

|

主席说得好,你不能确定他用的是系统的find还是你的find
用反引号

|
或者lz在使用sh的时候,加入-x参数,进行调试!

sh -x fa.sh 一看就知道了。

|
shell的调试确实不像高级语言那样方便,不过不是没有办法。
你可以用sh 的选项来比如-n检查语法错误,像LZ例子用sh -n cccccc.sh就能测试出来。


"-x"选项可用来跟踪脚本的执行,是调试shell脚本的强有力工具。“-x”选项使shell在执行脚本的过程中把它实际执行的每一个
命令行显示出来,并且在行首显示一个"+"号。 "+"号后面显示的是经过了变量替换之后的命令行的内容,有助于分析实际执行的
是什么命令。 “-x”选项使用起来简单方便,可以轻松对付大多数的shell调试任务,应把其当作首选的调试手段。

|
还有一个比较常用的方法就是多用
echo
打印你觉得有问题的地方。
不过交付脚本的时候还得一个一个删也是很麻烦的事。

    
 
 

您可能感兴趣的文章:

  • shell脚本如何调用另外一个shell脚本的函数?
  • 急救!关于Shell脚本删除过期文件的问题,Shell脚本达人乱入
  • shell 脚本中命令别名在脚本外无法使用
  • 傻瓜问题,请问shell编程和shell脚本编程的关系
  • 数据库 iis7站长之家
  • 想用shell脚本定时执行另一个脚本
  • 一个shell执行另一个带参数shell脚本????????????
  • 如何给shell脚本加密,脚本中有密码。最好是比较直接的,不要说让用 shc
  • Shell脚本调用Sql脚本并向其中传递变量
  • 请问,Shell中如何执行另外一个Shell脚本?
  • 如何传递参数给linux shell 脚本(当脚本从标准输入而不是从文件获取时)
  • nohup执行的shell脚本,全局变量不能传递到脚本中使用吗?
  • cd、zip等命令在shell提示符下能执行,在shell脚本中为什么不能执行呢?
  • shell脚本问题 关于父脚本和子脚本的问题
  • shell脚本错误输出
  • 请教shell脚本启动程序
  • 关于shell脚本的。
  • 关于arm linux下的别名配置脚本如何在进入用户时让shell执行的问题,如bashrc,profile,.bash_profile等脚本,寻求高手解答
  • 高分请教关于Shell脚本执行中断问题?
  • linux shell脚本
  • 我的shell程序怎么老是出错
  • Linux Shell提示符出错,并发出警报声
  • shell 调用java程序出错
  • shell编程中的判断语句,为何老是出错。
  • spec 文件里使用 shell 命令出错,是为什么呀?
  • 用shell脚本修改用户密码,为什么出错?
  • shell这样写法为什么会出错
  • 关于ssh secure shell连接linux出错的问题,急,谢谢
  • linux shell中gcc file.c -o myfile出错
  • linux shell脚本 linux crond 的一个鲜为人知的错误,单独执行没问题,放到crond 中就执行出错 试问高手们哪个环节出错
  • shell脚本中source文件出错
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 不同类型的shell*(K SHELL , C SHELL) 用命令怎么切换?
  • linux bash shell命令:grep文本搜索工具简介
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 菜鸟问问题:shell是什么呢?普通的ls、cp、pwd这些命令算不算shell呢?如何把自己写的文件变成shell呢?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • shell变量和子shell的问题请教
  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 请问“当前shell”和“子shell”的区别?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 怎么知道当前是B_SHELL 还是C_SHELL
  • 用户登陆后运行某SHELL退出SHELL就回到LOGIN是怎么作到的?
  • 怎么写shell代码 写好shell怎么运行?
  • 请问一个shell中如何获取这个shell自身抛出的错误?
  • 非登录shell是什么 意思,和登录shell有什么区别啊
  • Solaris 8中修改root的shell为一个非法的Shell后怎么办?
  • 各位Shell高人,如何取得Shell的第10个入口参数?$10不行啊,急!
  • shell 编程 执行shell新建多个终端 并执行程序
  • 如何在一台机器上的shell中执行另外一台机器上的shell
  • 在shell中的交互问题,现在需要在shell结束时按某键或任意键


  • 站内导航:


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

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

    浙ICP备11055608号-3