分页: 1 / 1
初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-21 22:02
由 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 后面 有时是 小括号 有时是中括号
有时括号后面有 封号,有时后面又没有封号
这是怎么回事?
谢谢啦
Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-21 22:07
由 cuihao
for filename in `ls`
Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-21 22:14
由 cuihao
小括号貌似是C语法,不能你那么写的:
代码: 全选
if (($? != 0 )); then
Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-22 0:28
由 double_crane
谢谢啊,是应该反杠号;
封号是有的,买的书,写的不对啊,挫,还清华出版社的...
中括号有效,但是提示如下
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: 未找到命令
这个是什么意思啊,
我看到明明复制成功了的
Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-22 6:41
由 cuihao
copy目录要用:
if的问题嘛,我还没搞清楚。
其实我不太懂shell脚本

Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-22 8:07
由 cao627
楼主
if ( $? -ne 0 ) then
是什么意思?解释解释
我也学学
Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-22 21:44
由 naturalaw
結構不對.
少了分號.
要不then你就另起一行寫.
Re: 初学shell,书上的if小程序为什么出错?
发表于 : 2011-11-22 21:46
由 naturalaw
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 后面 有时是 小括号 有时是中括号
有时括号后面有 封号,有时后面又没有封号
这是怎么回事?
谢谢啦
學shell你還是找那本電子書吧.ebook99搞的pdf.在chinaunix論壇有連載.