如图中,这个for的循环,$HOME/.bash*等于FIFLE,在CP过程中是没有问题的,问题是chmod时,这里的路径可就变成了$HOME/public_html/$FIFLE这个得到的结果可就有问题啦这才是实际情况$HOME/public_html/$HOME/.bash*。那么这个教材中的例子是不是有问题呢,如果是正确的应该是什么样子的呢。不要说把 for FIFLE in .bash*这样的*就好像失去意义啦。
以下的例子是我做的一个测试,测试结果是错误的,所以我认为教材上的例子也有问题,请高手指点。
for FILE in $HOME/ch0*
do
cp $FILE ${HOME}/shell/ll
echo ${HOME}/shell/ll/${FILE}
done
不是吧大家都看不到图我把原话写下来吧
for FILE in $HOME/.base*
do
cp $FILE ${HOME}/public_html
chmod a+r ${HOME}/public_html/${FILE}
done
我经过过滤方法解决,但说明教材是有误的。
for FILE in $HOME/ch0*
do
cp $FILE ${HOME}/shell/ll
xfile=$(echo $FILE |cut -d "/" -f6) #过滤
chmod a+w ${HOME}/shell/ll/${xfile}
done
[
本帖最后由 lzj65166 于 2009-3-13 12:04 编辑 ]
收起