看了置顶贴后写的一个练习的脚本,执行起来错误不少。。。。
#!/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+左箭头算了
一堆小小的问题,厚颜来问[高手就不用进来了]
-
- 帖子: 1
- 注册时间: 2007-08-30 16:42
一堆小小的问题,厚颜来问[高手就不用进来了]
上次由 ignorance 在 2007-08-30 18:53,总共编辑 1 次。
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
- iblicf
- 帖子: 3766
- 注册时间: 2007-01-15 17:15
代码: 全选
#!/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
- stlxv
- 论坛版主
- 帖子: 8275
- 注册时间: 2006-05-03 0:39
- 来自: المريخ
-
- 帖子: 33
- 注册时间: 2007-05-22 10:48
- 联系:
我也刚开始学shell
#!/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 $?来查看
# 复制~/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 $?来查看