当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [求助]编写shell程序的时候,如何让用户输入文件的路径,然后储存至某个变量,然后在读取出来?
帖子发表于 : 2015-05-24 10:30 
头像

注册: 2007-09-04 5:23
帖子: 193
地址: 福建福州
送出感谢: 0 次
接收感谢: 0 次
shell脚本的教材真心难懂,看了好多了,大多数只告诉你某个脚本,某个指令都有什么作用,给出的实例更是让我这种菜鸟看不明白,遇到问题,本着求助论坛大神的精神来论坛里问问:

问题是这样的,例如,我有一台主机,常年挂bt,在downloads文件夹中下载了很多的电影,音乐,还有软件什么的,时间长了,我想整理一下,使用了很久的linux,就知道大神都是一条命令搞定的,所以我也学着折腾起来,参考了很多资料,我知道
代码:
find . -name "*.mp4" -exec mv {} /media/yj/01D5-0635/xxx/ \;
这样的命令可以一次性搜索文件夹包含子文件夹下所有的mp4文件移动到某个目录里,同时
代码:
#!/bin/bash
find . -name "*.mp4" -exec mv {} /media/yj/01D5-0635/xxx/ \;
find . -name "*.mkv" -exec mv {} /media/yj/01D5-0635/xxx/ \;
find . -name "*.avi" -exec mv {} /media/yj/01D5-0635/xxx/ \;
find . -name "*.rmvb" -exec mv {} /media/yj/01D5-0635/xxx/ \;

这样的脚本也可以一次性移动你指定的某些类型的文件移动到你指定的目录。


到这里,问题来了,我在想,是否可以采用脚本执行前,用户输入一个路径,存入到一个变量,然后让find到的文件移动到用户输入的路径下的文件夹中去呢?

比如用户输入/home/xx/1则find . -name "*.mkv" -exec mv {} /home/xx/1/ \;
如果用户输入/home/xx/2则find . -name "*.mkv" -exec mv {} /home/xx/2/ \;

查阅了好几本教材,完全没有头绪,又不能和c语言一样scanf,感觉完全是两种概念。于是真的有些看不懂了,求大神给写个实例,让我好好学习体会一下。。。。


_________________
内练一口气,外练一口屁,不内不外练志气!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [求助]编写shell程序的时候,如何让用户输入文件的路径,然后储存至某个变量,然后在读取出来?
帖子发表于 : 2015-05-24 11:02 
头像

注册: 2010-11-19 14:25
帖子: 866
地址: onetracy.com
系统: 乌班图
送出感谢: 17
接收感谢: 13
代码:
read  -p  "提示语...." user_input


引用:
user_input
就是你要处理的变量


_________________
我为什么对linux感兴趣?因为它神秘。
@raoxiaowen
程序猿的生存之道:我的个人网站
比印象笔记更好用的为知笔记
我的github
推荐一个科学上网的方式


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [求助]编写shell程序的时候,如何让用户输入文件的路径,然后储存至某个变量,然后在读取出来?
帖子发表于 : 2015-05-24 11:37 
头像

注册: 2008-05-03 1:53
帖子: 959
送出感谢: 19
接收感谢: 11
用参数呗:./test.sh filename todir
代码:
#!/bin/bash

[[ "w$1" == "w" ]] && echo "Usage: $0 filename todir" && exit 0
[[ "w$2" == "w" ]] && echo "Usage: $0 filename todir" && exit 0
find . -name "$1" -exec mv {} $2 \;

exit 0


_________________
有空就看看docker吧,发展好快


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [求助]编写shell程序的时候,如何让用户输入文件的路径,然后储存至某个变量,然后在读取出来?
帖子发表于 : 2015-05-24 12:31 
头像

注册: 2008-09-13 19:17
帖子: 7789
系统: Arch Linux (x86_64)
送出感谢: 10
接收感谢: 77
直接搜索比较快

http://tldp.org/LDP/Bash-Beginners-Guid ... 08_02.html


_________________
博客:http://www.lainme.com


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [求助]编写shell程序的时候,如何让用户输入文件的路径,然后储存至某个变量,然后在读取出来?
帖子发表于 : 2015-05-26 0:28 
头像

注册: 2007-09-04 5:23
帖子: 193
地址: 福建福州
送出感谢: 0 次
接收感谢: 0 次
tracyone 写道:
代码:
read  -p  "提示语...." user_input


引用:
user_input
就是你要处理的变量

谢谢,大神的指点。


_________________
内练一口气,外练一口屁,不内不外练志气!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [求助]编写shell程序的时候,如何让用户输入文件的路径,然后储存至某个变量,然后在读取出来?
帖子发表于 : 2015-05-26 0:30 
头像

注册: 2007-09-04 5:23
帖子: 193
地址: 福建福州
送出感谢: 0 次
接收感谢: 0 次
sunfish 写道:
用参数呗:./test.sh filename todir
代码:
#!/bin/bash

[[ "w$1" == "w" ]] && echo "Usage: $0 filename todir" && exit 0
[[ "w$2" == "w" ]] && echo "Usage: $0 filename todir" && exit 0
find . -name "$1" -exec mv {} $2 \;

exit 0

大神一句话,我要读十年啊。。。。未了这一段,翻了1天的书。。。才弄明白每一段的作用


_________________
内练一口气,外练一口屁,不内不外练志气!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译