分页: 1 / 1

一堆小小的问题,厚颜来问[高手就不用进来了]

发表于 : 2007-08-30 16:53
ignorance
看了置顶贴后写的一个练习的脚本,执行起来错误不少。。。。

#!/bin/sh
# 复制~/Desktop/test下的新文件到桌面或其他某处
find ~/Desktop/test -mmin 10 >temp # 10min内修改的文件列表存入temp

echo "Select Mode"

select mode in "手动" "桌面"; do # 输出位置 这里会出错,说select怎么怎么的
break
done 这里unexpected
# 按选择
case "$mode" in
"手动")
echo "输入目标文件夹"
read var # 手动输入目的地
[ -f $var ] || mkdir $var;; # 不存在创建
"桌面")
var="~/Desktop";; esac
copy()
{
cp -r $* $var #不知这儿用$*行不行
}
cat temp|copy #还有这儿,这种参数传递方法能否使用
rm temp #收尾
exit 0 #0与1的差别?

注释掉那些以后执行,cp出问题,说目的文件夹怎么怎么

我这点问题学得扎实点的新手都应该知道吧,要骂我的懒啊急功近利啊的朋友就Alt+左箭头算了

发表于 : 2007-08-30 17:39
alinmn
Alt+<-原来可以这样用 谢谢lz :)

发表于 : 2007-08-30 17:43
bones7456
alinmn 写了:Alt+<-原来可以这样用 谢谢lz :)
晕。。。

发表于 : 2007-08-30 21:23
eexpress
送你一个方法。

发表于 : 2007-08-31 0:20
iblicf

代码: 全选

#!/bin/bash
find ~/temp/test -type f -mmin -10 > temp
echo "Select Mode ..."

select mode in  "手动" "桌面" ;
do
  break;
done
case "$mode" in
"手动")
   echo "输入目标文件夹"
   read var
[ -f $var ] || mkdir $var
;;
"桌面")
   var="/home/iblicf/Desktop"
;;
esac
copy()
{
cp -r $s $var ;
}

s=`cat temp`
copy
rm temp

exit 0
稍改了一下,函数的参数调用$* 可以么,? $*应该是全局的吧,不清楚,明天再看看,困了睡

发表于 : 2007-09-09 0:54
stlxv
alinmn 写了:Alt+<-原来可以这样用 谢谢lz :)

发表于 : 2007-09-12 21:16
fanhe
$*不是全局的,在函数里的话就是函数的参数

我也刚开始学shell

发表于 : 2007-09-19 23:52
DerekTan
#!/bin/sh
# 复制~/Desktop/test下的新文件到桌面或其他某处
find ~/Desktop/test -mmin 10 >temp # 这里最好加 -type f ,表示是regular file

echo "Select Mode"

select mode in "手动" "桌面"; do # 这里好像没什么问题啊
break
done

case "$mode" in
"手动")
echo "输入目标文件夹"
read var # 手动输入目的地
[ -f $var ] || mkdir $var;; # 这里应该用-d $var,-f是针对文件的,-d是看目录是不是存在,mkdir最好加参数-p,表示递归地创建
"桌面")
var="~/Desktop";; esac
copy()
{
cp -r $* $var #不知这儿用$*行不行
}
cat temp|copy #这里这样用是不行的,需要用xargs,用函数我没有成功,不过可以直接用 cat temp | xargs cp -t $var
rm temp #收尾
exit 0 #0是反馈给系统的,0表示成功,其他表示异常,可以在脚本运行完以后用echo $?来查看