一条命令下载google壁纸,含错误解决方法
该命令是从google图片搜索上搜索wallpaper的大尺寸图片,匹配其中的jpg文件进行下载。
#!/bin/bash
for i in {1..10}; do
for url in $(wget -O- -U "" "http://images.google.com/images?imgsz=xxlarge&hl=en&q=wallpaper&sa=N&start=${i}&ndsp=10" --quiet | grep -oe 'http://[^"]*\.jpg');
do
wget $url;
done
done
上面是google_wallpaper_download.sh脚本的内容。
我们逐行说下这句shell的意思。
1. 这句好理解一个for循环,令i从1到10.
2. 这也是一个for循环, $()这个是说明将里面的内容执行然后逐一赋值给url。
wget 是一个非交互式的网络文件下载工具,如果未安装执行sudo apt-get install wget进行安装。-O指定下载后的输出文件,如果指定的文件是“-“,代表标准输出;-U 指定agent,而非wget自带的。–quiet安静模式 (无信息输出)。
然后通过管道(管道指|)将输出传递给grep命令(在文件或输入中进行查找的命令)-o指示只显示匹配到的东西,-e指示使用正则进行匹配,
‘http://[^"]*\.jpg’是一个正则表达式,这里不介绍了。
3. wget下载匹配到的url。
4,5. done表示for结束。
总结:该命令下载google的搜索结果,匹配jpg图片地址,然后逐一下载。
可是我在使用了,犯了一个错误,特记录如下:
linux下sh执行 syntax error near unexpected token ' 错误解决方法:
将windows下的sh文件放到linux上执行后,会出现如标题的错误。该错误有文件格式引起的,具体来说,有几种方式可以尝试下。
在windows下,用ultraedit打开文件,将光标定位到换行处,然后"切换十六进制编辑模式“,可以看到换行处的值为”0D 0A",altraedit最下的工具栏可以看到“DOS”的文件样式。altra edit有带"DOS转UNIX“的功能,转换下,即可在最下的工具栏为"UNIX"字样,切换十六进制编辑模式看到的换行处的值就为"0A"字样,这时传递上去,执行sh就没有问题了。
linux自身有带dos2unix的命令,转换一下,这个没有试过,不过应该可行。
相关文章:

git config —global_Git多用户配置
备注:如下的操作,Windows系统建议在Git bash工具里操作。如下操作的原理,建议查阅官方文档。Git - Reference1.取消全局设置的用户信息。Git命令:$ git config --global --unset user.name $ git config --global --unset user.em…

中级实训总结报告
目录【阅读时间:约30分钟】中级实训总结报告姓名:隐藏敏感信息 学号:隐藏敏感信息一、阶段1:项目启动1、Vi/Vim2、Java3、Ant4、Junit5、SonarQube6、 编译运行BugRunner二、阶段2:基本任务1. part2的工作(…

PHP解决方案@黑名单过滤
为什么80%的码农都做不了架构师?>>> 方案解决目标:对一些黑名单进行过滤处理 function is_spam($text, $file, $split :, $regex false){ $handle fopen($file,rb); $contents fread($handle, filesize($file)); fclose($handle); $lines …

Ubuntu 12.04下玩转终端管理器Byobu
简介 很多Linux高手都喜欢使用screen命令,screen命令可以使你轻松地使用一个终端控制其他终端。尽管screen本身是一个非常有用的工具,byobu作为screen的增强版本,比screen更加好用而且美观,并且提供有用的信息和快捷的热键。 想象…

python字典排序方法_Python字典的排序方法一则
今天需要对Python的字典进行排序,以获得有效的时间序列,采用了如下方法: 首先生成一个示例字典: >>> range_a random.sample(range(0, 10), 10) >>> range_b random.sample(range(10, 20), 10) >>> …

encodeURI 和 encodeURIComponent
保留字符 (reserved characters):这类字符是URI中的保留关键字符,它们用于分割URI中的各个部分。这些字符是:";" | "/" | "?" | ":" | "" | "&&quo…

基于Golang的简单web服务程序开发——CloudGo
基于Golang的简单web服务程序开发——CloudGo【阅读时间:约10分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求(1)基本要求(2)扩展要求三、具体程序设计及Golang代码实现1.预先准备2.CloudGoClient…

Android Studio创建项目
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Android Studio中的两个概念。 Project和 Module。在Android Studio中, Project的真实含义…
Weiss的数据结构与算法分析(C++版)源码编译说明
最近尝试编译Weiss的那本数据结构与算法分析(C版)提供的源代码时,遇到一些问题,特记录如下:考虑到该书提供的代码是使用模板技术较多,这在提供简洁代码的同时,也给源码的编译带来了一些问题。因…

latex 中文_【小白向】LaTeX 中文入门
注:本文尚未撰写完毕,先暂存一下~(2020/06/27)参考学习路线[1]如何从零开始,入门 LaTeX? 孟晨 1. 卸载 CTeX 套装,安装 TeX Live原因及教程见:TeX Live 下载及安装说明2. 看完:一份其实很短的 L…

物联网兴起 嵌入式系统安全日益受关注
随着越来越多设备连接到互联网,专家们担心嵌入式系统将给企业带来严重安全风险,而很多企业还没有意识到这种风险或者无法缓解这种风险…… 随着越来越多设备连接到互联网,专家们担心嵌入式系统将给企业带来严重安全风险,而很多企业…

【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录【阅读时间:约10分钟】一.概述二.对比: gorilla/mux与net/http DefaultServeMux三.简单使用四.源码简析1.NewRouter函数2.HandleFunc函数设置路由的HTTP方法设置路由的域名限制HTTP 方案设置路径前缀和子路由3.PathPrefix函数五.References一.概述 gorilla/mux…

FileMaker中的腳本觸發器學習筆記
脚本触发器 **脚本触发器是始终绑定到用户布局接口。对于数据表或者字段。只有在而已接口才能触发。**如果某一个布局或者对象上包含触发器,则其右下角会有触发器图标**当触发一个事件时,有且仅有一个触发器会被执行.布局级别的触发器**ONRECORDLOAD :加…

vim学习笔记(四)
下面是我的最近更新,差点删除。 下面的笔记摘自vimtutor。<CR>表示回车 删除命令 在normal模式下: de 删除一个单词,不包含空格 dw 删除一个单词,包含空格 dd 删除当前行 1,10d 删除指定行,第1到10行 ndd…

文件和缓存项目依赖
文件和缓存项目依赖 要创建缓存依赖,你需要创建一个 CacheDependency 对象并在添加依赖的缓存项目时使用它。例如,下面的代码创建一个缓存项目,它在一个 XML 文件被修改、删除、覆盖时自动从缓存中移除: CacheDependency prodDepe…

python函数的基础知识_Python入门基础知识点(函数进阶)
动态参数: 动态接收位置参数: def eat(*args): #在形参位置,*叫做聚合 print(我想吃,args) eat(大米饭,中米饭,小米饭) #收到的结果是一个tuple元祖 动态接收参数的时候要注意: 动态参数必须在位置参数后面,否则: def …

【CentOS】利用Kubeadm部署Kubernetes (K8s)
【CentOS】利用Kubeadm部署Kubernetes (K8s)【阅读时间:约10分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求三、具体实验流程1 系统准备2 安装常用包3 使用aliyun源安装docker-ce4 安装kubectl、kubelet、kubeadm5 初始…
HttpClient4.4 登录知乎(详细过程)
引言 HttpClient是java语言下一个支持http协议的客户端编程工具包,它实现了HTTP协议的所有方法,但是不支持JS渲染。我们在做一些小玩意时,有可能需要登录某些网站获取信息,那么HttpClient就是你的好帮手,废话不多说&am…

vim学习笔记(一)
:vertical sfind 垂直分隔窗口(vsf),但是两个窗口的内容完全相同。在编辑的时候,内容也完全相同,如果要关闭一个窗口,输入:exit即可:buffers 显示整个缓冲区列表ndG 删除从当前行到指定n行中的…

Retrofit源码研究
2016-05-06 15:35:27 最近抽空研究了一下Retrofit源码,包括API使用、源码结构、使用到的设计模式、SDK的架构设计、作者设计/实现思路等,会形成一系列文章。 以前Retrofit还是1.9的时候,简单的写过一篇文章,简单研究下Retrofit&am…

wpf窗口向左向上_PaperWM:GNOME 下的平铺窗口管理
我使用 Gnome 已有很长时间了,但是我仍然有点想念平铺窗口管理器。六个月前,一个朋友告诉我有关 PaperWM 的消息,它使你可以在 Gnome 中平铺窗口!我立即安装了它,并从那时起我一直在使用它。-- Julia Evans(作者)当我开…

Docker的安装、镜像源更换与简单应用
Docker的安装、镜像源更换与简单应用【阅读时间:约20分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求三、Docker的安装四、Docker的简单应用1. 运行第一个容器2. Docker基本操作3. MySQL与容器化3.1 拉取MySQL镜像3.2 构建docker镜像3.3 MySQL容…

vim学习笔记(三)
1.vim的配置文件在哪里?在normal模式下输入:echo $VIMVim的主配置文件为vimrc文件,它分为两个版本:global和personal,其中前者一般在/usr/share/vim/vimrc,后者一般在~/.vimrc,它是一个隐藏文件找到home目录的方法:ech…

python 学术_Python
前几天实验室一个师兄给我一个质谱结果,让帮忙做下go的功能富集,数据格式大概是这样的:由于之前做go和kegg时都是跑流程,像这种针对性的go富集还没做过,说到底,还是由于自己手上缺少数据,没有属…

Hive的Security配置
为了更好地使用好Hive,我将《Programming Hive》的Security章节取出来,翻译了一下。 Hive还是支持相当多的权限管理功能,满足一般数据仓库的使用。 Hive由一个默认的设置来配置新建文件的默认权限。 Xml代码 <property> <name>…

Docker安装Apache与运行简单的web服务——httpd helloworld
Docker运行简单的web服务——httpd helloworld目录【阅读时间:约5分钟】一、Docker简介二、Docker的安装与配置【CentOS环境】三、Docker运行简单的web服务——httpd helloworld四、References一、Docker简介 Docker 是一个开源的应用容器引擎,让开发者…

在CentOS 6.2上搭建vim开发环境
在CentOS 6.2上搭建vim开发环境最后更新日期:2013-07-051.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其上面的vim相关插件到Ubuntu的下载目录下:cd ~/下载/http://ctags.sourceforge.ne…

python基础(三元运算+深浅拷贝+函数参数)
三元运算 三元运算,又称三目运算,主要作用是减少代码量,是对简单的条件语句的缩写。 1 书写格式: 2 result 值1 if 条件 else 值2 3 即如果条件成立,则将值1赋给result变量,如果不成立,将值2赋…

pythonapi是什么_python接口自动化(一)--什么是接口、接口优势、类型(详解)...
简介经常听别人说接口测试,接口测试自动化,但是你对接口,有多少了解和认识,知道什么是接口吗?它是用来做什么的,测试时候要注意什么?坦白的说,笔者之前也不是很清楚。接下来先看一下…

【阶段小结】协同开发——这学期的Git使用小结
【阶段小结】协同开发——这学期的Git使用小结一、Git简介1. Git简单介绍2. Git工作流程以及各个区域3. Git文件状态变化二、Git安装&Git基本配置三、个人踩坑1. xcode project“抽风式”问题2. 如何拯救git仓库一、Git简介 1. Git简单介绍 Git是一个分布式版本控制软件&…