linux 读取命令行输入参数,shell脚本读取文件+读取命令行参数+读取标准输入+变量赋值+输出到文件...

读取url_list文件批量下载网页

url_list

http://www.tianyancha.com/company/2412078287

http://www.4399.com/special/1.htm

http://www.we7.cc/

http://kongzhong.tmall.com/

http://dianying.2345.com/

http://www.takefoto.cn/viewnews-1521788.html

http://www.x4jdm.com/bf/429-1-1.html

http://www.douyu.com/546715

http://www.zjedu.gov.cn/default.html

http://dl.xunlei.com/

download.sh

#!/bin/bash

for line in $(cat $)

do

id=$(echo $line| getid | awk '{$id=10000+$1;print $id;}')

echo $line | gethtmlfile $id > "./result/"${id}".html"

done

运行:

[spider@zhangsuosheng]$ chmod +x ./download.sh

[spider@zhangsuosheng]$ ./download.sh url_list

1、sh文件格式

http://www.runoob.com/linux/linux-shell.html

2、bash按行读取文件+bash读取命令行参数

测试文件:url_list_zss

[spider@zhangsuosheng]$ cat url_list_zss

cccccc

ddddddddd

aaaaaa

正确写法:

#!/bin/bash

for line in $(cat $)

do

echo $line

done

[spider@zhangsuosheng]$ chmod +x ./download.sh

[spider@zhangsuosheng]$ ./download.sh url_list

cccccc

ddddddddd

aaaaaa

不合适的写法:

#!/bin/bash

for line in 'cat $1'

do

echo $line

done

[spider@zhangsuosheng]$ chmod +x ./download_testhtml.sh

[spider@zhangsuosheng]$ ./download_testhtml.sh url_list_zss

cat $

https://www.jb51.net/article/122918.htm

3、读取命令行参数

https://blog.csdn.net/qq_30145093/article/details/78191941

https://blog.csdn.net/ruidongliu/article/details/9717905

4、加法运算

用的awk

5、读取管道中的标准输入 直接读/xargs

https://www.cnblogs.com/wangqiguo/p/6464234.html

6、变量赋值

https://blog.csdn.net/lemontree1945/article/details/79126819

7、字符串拼接

https://www.jb51.net/article/44207.htm

Shell脚本:while read line无法读取最后一行的问题

[1]Shell脚本:while read line无法读取最后一行的问题 刚刚利用shell脚本处理日志文件时,发现了一个问题:while read line无法读取到最后一行 通过编辑器可以看到待 ...

一只简单的网络爬虫(基于linux C/C++)————读取命令行参数及日志宏设计

linux上面的程序刚开始启动的时候一般会从命令行获取某些参数,比如以守护进程运行啊什么的,典型的例子就是linux下的man,如下图所示 实现该功能可以使用getopt函数实现,该函数在头文件uni ...

Shell脚本传递带有空格的参数

在另一博文中实现了通过脚本实现将DB2数据库导出到文件,需要传入七个参数,最后一个是一个带有空格字符串,所以传入的时候有点问题,会自动识别空格 ...

python读取命令行参数的方法

1.sys模块 需要模块:sys参数个数:len(sys.argv)脚本名:    sys.argv[0]参数1:     sys.argv[1]参数2:     sys.argv[2] test.p ...

Shell脚本中判断输入变量或者参数是否为空的方法

shell判断一个变量是否为空方法总结 https://www.jb51.net/article/154835.htm 1.判断变量 复制代码代码如下: read -p "input a w ...

《Linux命令行与shell脚本编程大全》 第六章环境变量

很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息. 6.1 什么是环境变量: bash shell用一个叫环境变量(environment variable)的特性来存储有关shel ...

Shell脚本、Shell脚本结构、date命令的用法、变量

1.Shell脚本: shell是一种脚本语言 目的:可以实现自动化运维,能大大增加运维的效率.2.Shell脚本结构:   #!/bin/bash  以#!/bin/bash开头,即以/bin/ba ...

Shell脚本传递带有空格的参数[摘录自网络]

参数处理 说明 $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数 $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的ID号 $@ 与$#相同,但是使用时加引号,并在 ...

node里读取命令行参数

一.process.env process.env属性返回一个包含用户环境信息的对象. 最常见的需求,前端需要根据不同的环境(dev,prd),来调用不同的后端接口.如果用webpack,是这么做的: ...

随机推荐

React-Native 渲染实现分析

前言 React Native与传统的HybirdApp最大区别就是抛开WebView,使用JSC+原生组件的方式进行渲染,那么整个App启动/渲染流程又是怎样的呢? React Native启动流程 ...

JAVA 冒泡算法

每种语言都有冒泡JAVA实现如下: public static void main(String args[]){ System.out.println("Start"); int ...

AngularJs定制样式插入到ueditor中的问题总结

总结一下自己给编辑器定制样式的过程中所遇到的问题,主要是编辑器的二次开发接口,以及用angular定制样式,问题不少,终于在**的帮助下,完成了,还剩下老版本和新版本的交互没有弄好,不过不难.下面分别 ...

android sudio 打包资料汇总

.http://blog.csdn.net/fengyuzhengfan/article/details/43876489 混淆2.http://my.oschina.net/fallenpanda/ ...

微信小程序用户信息解密失败导致的内存泄漏问题。

微信小程序获取用户解密的Session_key 然后对 encryptedData进行解密 偶尔报错 时间长了之后会报内存溢出: java.lang.OutOfMemoryError: GC over ...

npm ERR! Refusing to install package with name "webpack" under a package -----

当我们在安装以一些依赖的时候会提示以下报错--------- 问题出在: 这个name 不能使用所需要安装包的名字! 解决方案----- 修改下就行 -- -我将wenpack 改成webpack1 ...

解决Javascript中$(window).resize()多次执行

有些时候,我们需要在浏览器窗口发生变化的时候,动态的执行一些操作,比如做自适应页面时的适配.这个时候,我们需要在窗口拖动的时候去执行代码.但是有些时候,执行的操作比较复杂,我们只希望在窗口拖动完毕之后 ...

Spring Boot 实现RESTful webservice服务端实例

1.Spring Boot configurations application.yml spring: profiles: active: dev mvc: favicon: enabled: fa ...

SQL On Streaming

此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 实时计算的一个方向 实时计算未来会成为一个趋势,基本上所有的离线计算任务都能通过实时计算来完成,对于实时计算来 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在shell脚本中,可以使用变量来存储数据。变量赋值可以通过以下方式进: 1. 直接赋值:使用等号(=)将值赋给变量,例如:name="John" 2. 从命令参数获取:使用$符号加数字($1、$2等)获取命令参数,例如:name=$1 3. 从命令输出获取:使用反引号(`)或$(命令)获取命令输出,例如:name=`whoami` 或 name=$(whoami) 4. 从文件读取:使用<符号将文件内容读入变量,例如:name=<filename 注意:变量名不能以数字开头,且等号两边不能有空格。 ### 回答2: 在shell脚本中,变量是非常重要的概念,它们可以用于存储和引用数据。在脚本中,变量可以通过赋值方式来创建,赋值操作使用等号“=”,变量名和值之间不能有空格。例如: ``` #!/bin/bash name="Tom" age=18 echo "My name is $name and I am $age years old." ``` 在上面的例子中,我们创建了两个变量name和age,并分别赋值为“Tom”和18。然后我们在脚本中使用了这两个变量,使用格式为“$变量名”,用来引用变量存储的值。 需要注意的是,变量的类型在shell脚本中是无需指定的,每个变量都是默认为字符串类型。此外,变量名可以包含字母、数字和下划线,但不能以数字开头。例如,变量名可以是“my_var”或者“hello_world”,但不能是“1var”或者“!world”。 在赋值操作中,还可以使用变量的扩展方式来创建新的变量值。变量扩展中,使用花括号来引用变量,例如“${variable}”,这个语法可以用于对变量计算、切割、拼接等操作。例如: ``` #!/bin/bash name="Tom" greeting="Hello, ${name^^}!" echo $greeting ``` 在上面的例子中,我们使用了变量扩展中的“${name^^}”,将变量name的值转换为大写字母,并插入到字符串中。最终结果是“Hello, TOM!”。 此外在shell脚本中,还有一些特殊变量,它们是系统定义的变量,在脚本中使用时不需要像普通变量一样赋值。例如,“$0”表示脚本本身的名称,“$1”表示脚本调用时传入的第一个参数,依此类推。 总的来说,shell脚本中的变量赋值是一个非常重要的基础概念。只有熟练掌握了变量赋值,才能更好的编写出高效、灵活的脚本。 ### 回答3: Shell脚本中,变量是非常重要的,可以帮助我们储存数据、传递参数、进运算等。Shell变量通常分为环境变量和自定义变量。其中,自定义变量又分为局部变量和全局变量。环境变量是系统已经设置好的在Shell中可以使用的变量,而自定义变量可以自由定义、修改。 变量赋值:我们可以为某一个变量赋值,例如: ```bash #!/bin/bash VAR="Hello World" echo $VAR ``` 在上述示例中,我们用`VAR`变量存储了"Hello World"字符串,并通过`echo`命令打印了出来。需要注意的是,在Shell脚本中,变量之间不能有空格。变量名必须以字母或下划线开始,可以包含字母、数字、下划线。 只读变量:使用readonly命令可以将变量设置为只读,即在定义之后不能再修改。 ```bash #!/bin/bash readonly VAR="Hello World" VAR="New value" ``` 在上述示例中,我们先将变量`VAR`设置为只读。在尝试修改变量的值时,会提示“VAR: readonly variable”。 删除变量:使用`unset`命令可以删除一个变量。 ```bash #!/bin/bash VAR="Hello World" echo $VAR unset VAR echo $VAR ``` 在上述示例中,我们首先定义了变量`VAR`,然后通过`echo`命令打印了一遍。接着使用`unset`命令删除了`VAR`变量。在接下来的一代码中,我们再次使用`echo`命令打印`VAR`变量,发现它已经被删除了。 变量类型:在Shell脚本中,有三种变量类型:字符串、整数和数组。变量类型可以不用声明,Shell会自动识别。 字符串变量: ```bash #!/bin/bash STR="Hello World" echo $STR ``` 整数变量: ```bash #!/bin/bash NUM=10 echo $NUM ``` 数组变量: ```bash #!/bin/bash ARRAY=("apple" "banana" "cherry") echo ${ARRAY[0]} echo ${ARRAY[1]} echo ${ARRAY[2]} ``` 在上述示例中,我们定义了一个名为`ARRAY`的数组变量,存储了三个字符串元素。通过`${ARRAY[0]}`、`${ARRAY[1]}`和`${ARRAY[2]}`可以分别输出数组中的第1、2、3个元素。 最后需要注意的是,在变量赋值时,我们可以使用变量替换符。例如,`$`符号表示替换为变量的值,`$(command)`表示替换为命令的结果。 ```bash #!/bin/bash NAME="Alice" echo "My name is $NAME" # 输出"My name is Alice" echo "Today is $(date)" # 输出今天的日期 ``` 总之,Shell脚本中的变量赋值方式灵活多变,可以根据不同的需求进设置,大大提高了脚本编写的灵活性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值