Articles of bash

在Bash中parsingSNMP输出

我需要处理以下命令的文本输出: snmpwalk -v2c -c community 192.168.122.15 .1.3.6.1.4.1.14823.2.2.1.4.1.2.1.39 原始输出是: SNMPv2-SMI::enterprises.14823.2.2.1.4.1.2.1.39.252.200.151.233.54.69.197.39.5.77 = STRING: "Android" 我需要输出看起来像 197.39.5.77="Android" 197.39.5.77是=符号前的最后四位数字。

Bash IP IF THEN ELSE声明

我需要从几台机器上运行一个脚本,但是每台机器都需要执行独特的命令。 我以为bash脚本能够做到这一点,但是我对这个部门不太了解。 我需要的代码看起来类似于下面的代码(或将它)。 我知道,这是远远不够完美或function,但它真的只是有助于expression我在找什么。 有人可以帮我用这个脚本? #/bin/bash IP= ifconfig eth0 | grep inet | grep -v inet6 | cut -c 7-17 If [$IP -eq 192.168.32.1] then mkdir IPFolder-1 more code… else if [$IP -eq 192.168.32.2] then mkdir IPFolder-2 more code… else if [$IP -eq 192.168.32.5] then mkdir IPFolder-5 more code…

脚本内ps aux和`ps aux`之间的不同结果

我有一个bash脚本( ScreamDaemon.sh ),其中的一个检查,它没有运行的例子已经被添加。 numscr=`ps aux | grep ScreamDaemon.sh | wc -l`; if [ "${numscr}" -gt "2" ]; then echo "an instance of ScreamDaemon still running"; exit 0; fi 通常情况下,如果没有其他脚本运行, ps aux | grep ScreamDaemon.sh | wc -l应该返回2 (它应该find自己和grep ScreamDaemon.sh ),但是它返回3 。 所以,我试图分析发生了什么,并添加一些回声看到这个: 我已经添加到脚本中的行 ps aux | grep ScreamDaemon.sh ps aux | grep ScreamDaemon.sh | wc […]

Sed来遍历文件并replace占位符variables

我希望使用bash来遍历一个文件,并将所有的占位符varialbes变成真正的variables: $ PLACEHOLDER_USER – > $ USER $ PLACEHOLDER_STATE – > $ STATE 它需要与任何以占位符开始的variables一起工作,并把它变成它的实际variables。 这是迄今为止的代码: $FILE="/mytest.conf" sed -i "s/$var1/$var2/g" "$FILE" 不过,我不知道如何让它遍历整个文件,我不知道如何使任何variables以$ PLACEHOLDER_开头 任何帮助,将不胜感激。

如何读取csv文件到bash脚本中的数组

我写了下面的代码来读取我的csv文件(它有固定数量的列,但不是固定的行数)到我的脚本作为一个数组。 我需要它是一个shell脚本。 usernames x1 x2 x3 x4 username1, 5 5 4 2 username2, 6 3 2 0 username3, 8 4 9 3 我的代码 #!/bin/bash set oldIFS = $IFS set IFS=, read -a line < something.csv 我用过的另一个选项是 #!/bin/bash while IFS=$'\t' reaad -r -a line do echo $line done < something.csv 对于这两个我试过一些testing代码,看看arrays的大小将是什么,我似乎得到了第一个10的大小,但arrays只输出用户名。 对于第二个,我似乎得到0的大小,但数组输出整个csv。 帮助非常感谢!

在ShellScript中,基于Curl输出分配variables

我试图编写一个shellcript,将分配一个variables来curl输出。 当我从命令行运行这个curl命令的输出是这样的: $curl "test.test.com/landing/505978290?c=Area%20Rug" www.test.com/test/test?test=test 去这个url应该只是输出一个文本文件与另一个url。 我想testing这第二个url是它应该是的url。 url = $(curl "test.test.com/landing/505978290?c=Area%20Rug") if [$url -gt "www.tazinga.com/landing/505978290?c=area%20rug&si=gw&alt_css=silver&sv=34&"] echo ""test.test.com/landing/505978290?c=Area%20Rug did not redirect properly" else echo "Right URL" fi 但是,当我运行的shellcript我得到这个输出: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 75 0 75 0 0 997 0 –:–:– –:–:– […]

使用随机在bash中生成一个随机string

我正在尝试使用bash函数RANDOM创build一个随机string,该string由包含整数和字母数字数字的variables(例如:var =“abcd1234ABCD”)中的8个字符组成 谢谢。

无法只用Linux date命令设置一年

出于某种原因,我只能使用date命令更新一年 date Tue Mar 4 20:15:42 IST 2014 date '+%Y' -s '2013' date Tue Mar 4 20:13:01 IST 2014 我在RedHat和Ubuntu上都试过 NTP没有运行…

$ JAVA_HOMEpath在login时在〜/ bash_profile中找不到正确的path

login到我的CentOS 7虚拟机后,我的$ JAVA_HOME总是被设置为: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64/jre ,这是不正确的。 我的〜/ .bash_profile读取: # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/jre export JAVA_HOME PYCHARM_HOME=/opt/pycharm-community-2017.2.3/ export PYCHARM_HOME ECLIPSE_HOME=/opt/eclipse export ECLIPSE_HOME export SPARK_HOME=/opt/spark PATH=$PATH:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin:$SPARK_HOME/bin:$PYCHARM_HOME/bin:$ECLIPSE_HOME export PATH Sourcing .bash_profile每当我打开一个新的terminal似乎纠正这个问题,但为什么我的$ JAVA_HOMEpath在启动时默认为旧版本,而不是设置为.bash_profile中指定的目录?

在linux上完成密码字段scp命令

我写一个shell脚本来使用scp命令(ssh)将文件传输到计算机。 这显然是密码保护有没有一种方法,无论是…禁用密码或自动为客户完成密码? 这纯粹的易用性,我不知道是否有可能(即时通讯相当新的Linux),任何帮助或指针,将不胜感激。 提前致谢