Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >修改bash脚本以获取文件中的每一行并执行命令

修改bash脚本以获取文件中的每一行并执行命令
EN

Stack Overflow用户
提问于 2016-03-09 21:39:12
回答 2查看 55关注 0票数 1

我需要修改bash脚本,以获取文件中的每一行并执行命令。我目前有这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
if [ -z "$1" ] ; then
    echo "Lipsa IP";
    exit;
fi
i=1
ip=$1
while [ $i -le `wc -l pass_file | awk '{print $1}'` ] ; do
    if [ -n "$ip" ]; then
        rand=`head -$i pass_file | tail -1`
        user=`echo $rand | awk '{print $1}'`
        pass=`echo $rand | awk '{print $2}'`

        CMD=`ps -eaf | grep -c mysql`

        if [ "$CMD" -lt "50" ]; then
            ./mysql $ip $user $pass &
        else
            sleep 15
        fi
        i=`expr $i + 1`
    fi
done

密码文件的格式和名称为pfile:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
username password

intranet主机文件的格式为(逐行),名称为hlist:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
192.168.0.1
192.168.0.2
192.168.0.3

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2016-03-09 21:51:17

我不明白你想做什么,你还没有做什么。您想以某种方式使用ip号码文件吗?

无论如何,从密码文件中提取用户名和密码的方法是不必要的复杂(礼貌地说);您可以用一种简单得多的方式遍历文件中的每一行。而不是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while [ $i -le `wc -l pass_file | awk '{print $1}'` ] ; do
  rand=`head -$i pass_file | tail -1`
  user=`echo $rand | awk '{print $1}'`
  pass=`echo $rand | awk '{print $2}'`
  # ...
  i=`expr $i + 1`
fi

只需使用bash (Posix) read命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while read -r user pass __; do
  # ...
done < pass_file

(如果pass_file中有一行具有两个以上的值,则使用__read命令中的最后一个变量名接收“该行的其余部分”)。

票数 0
EN

Stack Overflow用户

发布于 2016-03-09 22:22:42

我再次在网上搜索,发现了一个更干净的代码,我根据自己的需要进行了调整。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
while read ip
do
if [ -n "$ip" ]
then
  while read user pass
  do
     CMD=`ps -eaf | grep -c mysql`
     if [ "$CMD" -gt "50" ]
     then
        sleep 15
     fi
     ./mysql $ip $user $pass &
  done < pass_file
fi
  done < host_file
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35903150

复制
相关文章
vue导入外部css不污染全局
导入外部css <style src="./main.css" scoped> </style> 导入外部less 需要先安装less插件 npm install less less-loader <style src="./main.less" lang="less" scoped> </style>
明知山
2020/12/14
2.1K0
在WebKit中并行加载外部脚本译:
作者:Tony Gentilcore 原文:http://webkit.org/blog/1395/running-scripts-in-webkit/ WebKit 正式版已经正式支持HTML5中<script>标签的 async 和 defer 属性了。如此一来,我们就能在不阻塞网页中其它元素下载的情况下,以异步方式下载JavaScript,从而大大提高了网页加载速度。 正常情况下,网页分析器检测到有外部脚本时,会暂停解析,并发起一个请求去下载该脚本,一直到这个脚本完全下载并执行之后解析才会继续进行。
小李刀刀
2018/03/02
1.8K0
话单查询记录写入到文件-shell脚本
shellcatalog="/root/nullhuadan" # 脚本工作目录
eisc
2021/02/10
5580
在VUE中怎么全局引入sass文件
在使用vue开发SPA应用中,我们经常需要在一个或多个scss文件中定义公共变量或者mixin亦或是很多通用的function,而且不希望在每个vue文件中都去@import,针对这种情况,可以使用下面的方法添加全局引入的sass文件,使这些样式或者方法可以被打包到全局的样式文件中。
fastmock
2022/07/13
1.4K0
在vue中引入外部的css文件「建议收藏」
使用@import引入样式文件,就算加scoped,其它没有引入的模块还是可以访问到你的样式,如果某个组件的类名一致,则就会被污染到。 如果不想被污染,修改引入方式
全栈程序员站长
2022/11/08
5.1K0
OpenCV300 CMake生成project在项目过程中的问题
2015年6一个月4日本。OpenCV官网上面给出了最新版本号OpenCV。这是:3.0.0版本号,http://opencv.org/
全栈程序员站长
2022/07/06
5340
OpenCV300 CMake生成project在项目过程中的问题
在Shell脚本中逐行读取文件的命令方法
为了演示,在此创建一个名为“ mycontent.txt”的文本文件,文件内容在下面:
用户7639835
2021/12/03
9.3K0
11.22 访问日志不记录静态文件
访问日志不记录指定类型的文件目录概要 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 把虚拟主机配置文件改成如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.123.com ServerAlias 123.com SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI ".*\.j
运维小白
2018/02/06
1K0
11.22 访问日志不记录静态文件
Apache访问日志+不记录静态文件
Apache访问日志 : 访问日志:顾名思义就是当有人访问咱们的站点,就会被记录些信息!其实这个还是蛮重要,尤其是站点受到攻击,直接命令的日志可以让我们迅速找到攻击者IP的规律! 根据咱们之前的配置,访问日志如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/test3.com" ServerName www.test3.com ServerAlias www.haha.com #<Directory /data/wwwroot
老七Linux
2018/05/09
1.8K0
dotnet publish 不生成pdb文件
随着项目的体积越来越大,导致publish的时候文件越来越多,然而生产环境中其实pdb调试文件并没有什么作用(remote debug)除外,所以也就灵机一动想着是否可以不生成呢?
全栈程序员站长
2022/08/26
1.2K0
python在租房过程中的应用
总第84篇 01|背景介绍: 租房是再普遍不过的一件事情了,我们在租房过程中常考量的两个因素是出租房离公司的远近以及价格,而我们一般都会去链家上看相应的信息,但是链家网只有价格没有距离,对于我这种对帝都不是很熟的人,对各个区域的位置是一脸懵逼,所以我就想着能不能自己计算距离呢,后来查了查还真可以。具体做法就是先获取各个出租房所在地的经纬度和你公司所在地的经纬度,然后进行计算即可。 我们在获取经纬度之前首先需要获取各个出租房所在地的名称,这里获取的方法是用爬虫对链家网上的信息进行获取的。关于爬虫可以先看看
张俊红
2018/04/11
1.2K0
python在租房过程中的应用
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
最近在通过shell脚本在Linux系统安装Java或Python的过程中,遇到了shell脚本中的“source /etc/profile”无法生效的问题,虽然也可以在执行完脚本后再次执行“source /etc/profile”来使配置文件生效,但未免有些繁琐,而我又比较懒,想彻底弄清其原因及解决办法,从而一劳永逸。以下为本次解决问题的实践记录:
大刚测试开发实战
2022/11/14
9.2K0
解决shell脚本中"source /etc/profile"重载配置文件不生效的问题
用工具脚本生成模板代码记录
这次项目的需求有大概20个命令,需要根据协议来实现不同payload的编码和解码函数,抽象出来每个命令有相似的代码结构,如果每行都用键盘敲打确实是低效,所以考虑用脚本先生成一个代码模板,然后逐个填空实现对应的方法,也算是一个小的尝试!
呱牛笔记
2023/05/02
2580
用工具脚本生成模板代码记录
vue文件中引入外部js
1.在项目的入口文件中(app.js)定义remoteScript标签 Vue.component('remote-script', { render: function (createElement) { var self = this; return createElement('script', { attrs: { type: 'text/javascript', src
lin_zone
2018/08/15
23K2
Codeigniter文件上传类型不匹配错误
Codeigniter的文件上传类方便了我们使用PHP来处理文件上传的操作,使用起来非常简单,如下:
大江小浪
2018/07/24
2.4K0
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
6.3K0
在Salesforce中动手创建页面布局和记录类型
通过官方的工作册和教程来学习Salesforce很好,但对于我个人来讲我很难抽出时间去看这些材料,因为它不是我的公司的需求,并且从中学到的并不是我在日常工作中可以使用的东西。
臭豆腐
2019/04/16
2.5K0
在Salesforce中动手创建页面布局和记录类型
MyEclipse无法编译,不生成class文件
还有一种原因是工程中的jdk没有导入正确;在工程中选中jre system Library 右键build path configure build path 把jre移除 然后点击 add library 选中 jre sysrem library 将本地的jdk路径找到 确定就ok了
西门呀在吹雪
2020/11/09
1.5K0
ASP.NET中绑定枚举类型
在项目开发中好多地方用了枚举,要把枚举显示到下拉列表框中我们平常的方法就是在下拉列表控件中一个一个添
Java架构师必看
2021/03/22
1K0
新能源汽车生产过程中的智能制造技术
智能制造是在基于信息技术和先进制造技术的基础上发展起来的一种综合性生产技术,智能制造贯穿于生产环节的设计、过程、管理和售后服务多个作业环节。
yansunxer
2022/10/13
5900
新能源汽车生产过程中的智能制造技术

相似问题

在类型记录中扩展角全局对象

33

更新到角9和类型记录3.8.3后生成错误

13

在角6/类型记录中声明全局变量

10

在角/类型记录中单击后动态绑定

10

角度:注塑在生产过程中不生成。

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文