照书上抄的,关于if的用法
#!/bin/bash
for filename in 'ls'
do
cp $filename ./backup/$filename
if ( $? -ne 0 ) then
echo "copy failed"
fi
done
程序的意思就是把一个文件夹的内容在子目录做备份
为什么执行报错
cp: 无法获取"ls" 的文件状态(stat): 没有那个文件或目录
./if: 行 5: 1: 未找到命令
开始怀疑是子目录没创建,但是我 建一个 backup的目录,还是一样报错啊?
这是什么情况啊?
还有,我发现这书上写的 if 有点乱;
if 后面 有时是 小括号 有时是中括号
有时括号后面有 封号,有时后面又没有封号
这是怎么回事?
谢谢啦
初学shell,书上的if小程序为什么出错?
- double_crane
- 帖子: 52
- 注册时间: 2011-04-06 1:56
- cuihao
- 帖子: 4793
- 注册时间: 2008-07-24 11:33
- 来自: 郑州
- 联系:
Re: 初学shell,书上的if小程序为什么出错?
for filename in `ls`
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 蓝红黄蓝绿红
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
- cuihao
- 帖子: 4793
- 注册时间: 2008-07-24 11:33
- 来自: 郑州
- 联系:
Re: 初学shell,书上的if小程序为什么出错?
小括号貌似是C语法,不能你那么写的:
代码: 全选
if (($? != 0 )); then
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 蓝红黄蓝绿红
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
- double_crane
- 帖子: 52
- 注册时间: 2011-04-06 1:56
Re: 初学shell,书上的if小程序为什么出错?
谢谢啊,是应该反杠号;
封号是有的,买的书,写的不对啊,挫,还清华出版社的...
中括号有效,但是提示如下
cp: 略过目录"backup"
copy failed
小括号也能用,有效,提示
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
cp: 略过目录"backup"
./if: 行 6: 1: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
这个是什么意思啊,
我看到明明复制成功了的
封号是有的,买的书,写的不对啊,挫,还清华出版社的...
中括号有效,但是提示如下
cp: 略过目录"backup"
copy failed
小括号也能用,有效,提示
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
cp: 略过目录"backup"
./if: 行 6: 1: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
./if: 行 6: 0: 未找到命令
这个是什么意思啊,
我看到明明复制成功了的
- cuihao
- 帖子: 4793
- 注册时间: 2008-07-24 11:33
- 来自: 郑州
- 联系:
Re: 初学shell,书上的if小程序为什么出错?
求人不如求它仨: 天蓝的Wiki 屎黄的Wiki 蓝红黄蓝绿红
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
Site: CUIHAO.TK Twitter: @cuihaoleo
Machine: Athlon64 X2 5200+ / 2x2GB DDR2-800 / GeForce GTS 450
AD: ~まだ見ぬ誰かの笑顔のために~
-
- 帖子: 992
- 注册时间: 2007-12-05 10:57
- 系统: ubuntu14.04
- 来自: 金山
Re: 初学shell,书上的if小程序为什么出错?
楼主
if ( $? -ne 0 ) then
是什么意思?解释解释
我也学学
if ( $? -ne 0 ) then
是什么意思?解释解释
我也学学
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
- naturalaw
- 帖子: 1360
- 注册时间: 2011-09-06 22:04
Re: 初学shell,书上的if小程序为什么出错?
學shell你還是找那本電子書吧.ebook99搞的pdf.在chinaunix論壇有連載.double_crane 写了:照书上抄的,关于if的用法
#!/bin/bash
for filename in 'ls'
do
cp $filename ./backup/$filename
if ( $? -ne 0 ) then
echo "copy failed"
fi
done
程序的意思就是把一个文件夹的内容在子目录做备份
为什么执行报错
cp: 无法获取"ls" 的文件状态(stat): 没有那个文件或目录
./if: 行 5: 1: 未找到命令
开始怀疑是子目录没创建,但是我 建一个 backup的目录,还是一样报错啊?
这是什么情况啊?
还有,我发现这书上写的 if 有点乱;
if 后面 有时是 小括号 有时是中括号
有时括号后面有 封号,有时后面又没有封号
这是怎么回事?
谢谢啦
- 永恒之法则
- The eternal law