小编mai*_*ash的帖子

yum +消息是什么 - 没有包ansible可用

我尝试在我的linux red-hat版本5.7上安装ansible工具

yum install ansible
Loaded plugins: security
Setting up Install Process
No package ansible available.
Nothing to do
Run Code Online (Sandbox Code Playgroud)

ansible未安装在我的linux机器上 - 当然!

所以为什么我得到 - 没有包装ansible可用.以及如何解决这个问题?

yum.repos.d的视图是:

/etc/yum.repos.d]# ls
rhel-debuginfo.repo  rhel-source.repo  service-cd-repo.repo  stp-default-   repo.repo
Run Code Online (Sandbox Code Playgroud)

我已解决如下:

ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=63.4 ms
Run Code Online (Sandbox Code Playgroud)

更新 - 尝试安装epel-release软件包

yum install epel-release
Loaded plugins: security
service-cd                                                                                                      |  951 B     00:00     
swp-default                                                                                                  |  951 B     00:00     
Setting up Install Process
No package epel-release available.
Nothing to …
Run Code Online (Sandbox Code Playgroud)

linux yum ansible

10
推荐指数
1
解决办法
2万
查看次数

如何在管道中获取第一个命令的退出状态?

我做了一个简单的脚本:

$ more test.bash
#!/bin/bash
echo test
exit 1
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,退出状态应为1

$ /tmp/test.bash
echo $?
1
Run Code Online (Sandbox Code Playgroud)

但是当我按照以下方式运行时

/tmp/test.bash | tr -d '\r' 1>>$LOG 2>>$LOG
echo $?
0
Run Code Online (Sandbox Code Playgroud)

退出状态为0,(不符合预期1)

似乎退出状态来自tr命令.但我想要的是从脚本中获取退出状态 - test.bash.

为了从脚本中获取正确的退出状态,而不是从管道后面的命令中获取正确的退出状态,我需要在语法中添加/更改什么?

linux bash shell exit-code

8
推荐指数
1
解决办法
1885
查看次数

Shell 脚本以及如何避免在 Linux 计算机上同时运行相同的脚本

我有 Linux 集中服务器 \xe2\x80\x93 Linux 5.X。

\n\n

在某些情况下,在我的 Linux 服务器上get_hosts.ksh可以从其他一些不同的主机运行

\n\n

例如get_hosts.ksh可以在我的 Linux 计算机上同时运行三次或多次。

\n\n

我的问题:

\n\n
    \n
  • 如何避免运行进程/脚本的多个实例?
  • \n
\n

linux bash shell ksh

5
推荐指数
2
解决办法
3758
查看次数

验证 xml 文件 + 如何将 xmllint 命令设置为静默模式

我使用命令 xmllint 来验证 Linux 机器上的 xml 文件

我需要的是静默模式没有输出,并且我的验证将仅使用退出代码($?)

正如我们在这里看到的,当 xml 错误时,即使我设置了 --noout 标志,我也会在标准输出上收到错误

xmllint --noout CreDefault.XML
Default.XML:16: parser error : Opening and ending tag mismatch: Networks    line 6 and root
orrectiveActions/><fallback/></ErrorHandler></C></T><Vars/></G></Generic></ro   ot>
                                                                              ^
Default.XML:16: parser error : Premature end of data in tag root line 1 
  orrectiveActions/><fallback/></ErrorHandler></C></T><Vars/></G></Generic></ro   ot>
Run Code Online (Sandbox Code Playgroud)

是否可以将命令配置为静默模式?所以我可以检查$?仅有的?

我需要的是:

xmllint --noout CreDefault.XML

echo $?

1
Run Code Online (Sandbox Code Playgroud)

xml linux bash solaris

5
推荐指数
1
解决办法
6243
查看次数

如何在shell脚本中创建别名?

在Linux系统上定义别名非常简单.

从以下示例中我们看到:I_am_only_ls_aliasalias命令将输出作为ls命令提供给我们

 # alias I_am_only_ls_alias=ls
 # I_am_only_ls_alias
Run Code Online (Sandbox Code Playgroud)

输出:

file   file1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在bash脚本(define alias I_am_only_ls_alias)中做同样的事情时,我得到了I_am_only_ls_alias: command not found.

我的bash脚本示例:

alias_test.bash

#!/bin/bash

alias I_am_only_ls_alias=ls

I_am_only_ls_alias
Run Code Online (Sandbox Code Playgroud)

运行bash脚本 - alias_test.bash

/tmp/alias_test.bash
Run Code Online (Sandbox Code Playgroud)

输出:

/tmp/: line 88: I_am_only_ls_alias: command not found
Run Code Online (Sandbox Code Playgroud)

所以,首先我要问:

为什么不将bash识别I_am_only_ls_alias为别名?

为了在bash脚本中定义别名,我需要做些什么?可能吗?

bash shell alias

4
推荐指数
1
解决办法
3622
查看次数

如何剪切CSV文件

我有以下CSV文件

 more file.csv

 Number,machine_type,OS,Version,Mem,CPU,HW,Volatge

 1,HG652,linux,23.12,256,III,LOP90,220
 2,HG652,linux,23.12,256,III,LOP90,220
 3,HG652,SCO,MK906G,526,1G,LW1005,220
 4,HG652,solaris,1172,1024,2Core,netra,220
 5,HG652,solaris,1172,1024,2Core,netra,220
Run Code Online (Sandbox Code Playgroud)

请建议如何剪切CSV文件(通过cut或sed或awk命令)

为了获得部分CSV文件

  • 命令需要获取表示我们要从CSV中剪切的字段的值

    根据示例1(值应为6)

例1

在这个例子中,我们从左到右切割了6个字段(在这种情况下,CSV将如下所示)

  Number,machine_type,OS,Version,Mem,CPU

  1,HG652,linux,23.12,256,III
  2,HG652,linux,23.12,256,III
  3,HG652,SCO,MK906G,526,1G
  4,HG652,solaris,1172,1024,2Core
  5,HG652,solaris,1172,1024,2Core
Run Code Online (Sandbox Code Playgroud)

linux bash awk cut sed

3
推荐指数
1
解决办法
661
查看次数

如何只匹配主机文件中的两个第一台主机

使用以下egrep命令,我从/ etc/hosts文件中获取主机,如下例所示

egrep "Solaris|linux|unix|vms|win|proxy|terminal|unixware" /etc/hosts

192.9.200.12 Solaris1
192.9.200.13 Solaris2
192.9.200.14 Solaris3
192.9.200.15 Solaris4
192.9.200.16 Solaris5
192.9.200.17 linux1
192.9.200.18 linux2
192.9.200.19 linux3 
192.9.200.20 linux4
192.9.200.21 linux5
Run Code Online (Sandbox Code Playgroud)

我想要的是添加awk或sed或perl one liner命令,它将仅打印两个第一个匹配主机,如下所示

egrep "Solaris|linux|unix|vms|win|proxy|terminal|unixware" | ...... /etc/hosts

192.9.200.12 Solaris1
192.9.200.13 Solaris2
192.9.200.17 linux1
192.9.200.18 linux2
Run Code Online (Sandbox Code Playgroud)

linux bash perl awk sed

3
推荐指数
1
解决办法
134
查看次数

是否可以从bash脚本中设置超时?

有时我的bash脚本挂起并保持没有明确的理由

所以他们实际上可以永远挂起(脚本进程会运行直到我杀了它)

是否有可能在bash脚本超时机制中组合以便在例如半小时后退出程序?

linux bash process settimeout

3
推荐指数
2
解决办法
1万
查看次数

期望与 tcl 相比,自动化任务哪个更好

我想制作自动化脚本

  1. 自动rpm安装
  2. 长包安装( pkgs 列表中有很多问题在进行中)
  3. 自动回答应用程序安装问题

tcl 或 expect 哪个更适合此任务?

什么是 uniq 在 tcl 中更好?

linux solaris tcl expect

3
推荐指数
1
解决办法
628
查看次数

将CSV值导入Bash

我有以下CSV文件:

more my_file.csv
Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa
1000,"1 0 0 1",1002,1002,1003,1004,1005,"1 0 0 6",1007,1008,1009,1010,1011,1012,1013
100," 1 0 1 ",102,102,103,104,105,"1 0 6 2",107,108,109,"1 1 0 3 5 62 0",111,112,113
10001,10011,10021,10021,10031,10041,10051,10061,10071,10081,10091,10101,10111,10121,10131
.
.
.
.
Run Code Online (Sandbox Code Playgroud)

我的目标是在我的bash脚本中设置CSV参数(CSV中的所有状态)及其值

例如 (关于第二行值)

在我的bash脚本中,我将能够读取每个参数

 echo $Alabama
 1000 
 echo $Alaska
 1 0 0 1
Run Code Online (Sandbox Code Playgroud)

首先,我只是尝试编写以下(错误的)代码,以便使用它们的值设置参数:

#!/bin/bash

counter=1

for CSV_COLUMN in Alabama  Alaska  Arizona Arkansas  California  Colorado  Connecticut Delaware Florida  Georgia  Hawaii  Idaho  Illinois  Indiana  Iowa 
do
  export $CSV_COLUMN=` echo $CSV_LINE | cut -d',' -f$counter `
  counter=$counter+1
done
Run Code Online (Sandbox Code Playgroud)

测试应该是(来自bash脚本)

echo $Alabama …
Run Code Online (Sandbox Code Playgroud)

linux csv bash awk sed

2
推荐指数
1
解决办法
9043
查看次数

标签 统计

linux ×9

bash ×8

awk ×3

sed ×3

shell ×3

solaris ×2

alias ×1

ansible ×1

csv ×1

cut ×1

exit-code ×1

expect ×1

ksh ×1

perl ×1

process ×1

settimeout ×1

tcl ×1

xml ×1

yum ×1