AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
主页 / unix / 问题

问题[bash](unix)

Martin Hope
umar
Asked: 2023-03-12 16:10:25 +0800 CST

替换范围内的字符串[重复]

  • 2
这个问题在这里已经有了答案:
根据文本文件中第二列的匹配重命名列 2 个答案
8 天前关闭。

假设我有文本文件,例如

A1
A2
A3
A4
A7
A27
A31
A56
A100
A8
A11

我想要这样的输出,其中 A1 到 A30 应该用 A1 代替,A31 到 A100 应该用 A2 代替,使用 sed、awk 或 for 循环

A1
A1
A1
A1
A1
A1
A2
A2
A2
A1
A1

我是新手请帮忙,谢谢和问候

我试过这个

sed -i "s/(A1:A10)/A1/g" file.txt

我也尝试过循环 请改进我的编码

for i in file.txt; 
  do cat "$i";
     if ((A*>A10)); 
         then
         sed -e 's/A*/A1;
     else sed -e 's/A*/A2;
     fi
 done 
bash
  • 1 个回答
  • 24 Views
Martin Hope
Lee
Asked: 2023-03-11 22:38:50 +0800 CST

> 在 bash 中交互式定义函数时出现的符号

  • 5

我的 shell 环境的行为发生了变化:

早些时候,在粘贴函数定义时,例如

function exampleFunc {
    echo hello
}

到 shell,它将显示为格式化并注册新的函数定义。

>现在,由于某种原因,它在除第一行以外的每一行之前显示。

function exampleFunc {
>echo hello
>}

我发现包含 for 循环的函数现在无法注册。

这可能是什么解释?我怎样才能恢复到以前的模式?


Ubuntu 20.04

此更改发生在安装nushell之后,但可能无关。

bash
  • 2 个回答
  • 34 Views
Martin Hope
OB7DEV
Asked: 2023-03-11 10:50:22 +0800 CST

bash 中的 ` 和 ' 有什么区别?[复制]

  • 4
这个问题在这里已经有了答案:
`(反引号/反引号)在命令中是什么意思? (6 个答案)
10 天前关闭。

今天我注意到如果我跑步:

ldd `which bash`

我得到了预期的输出。但是当我跑

ldd 'which bash'

我收到错误./which bash: No such file or directory.

那么这两个看起来相似的符号有什么区别呢?

bash
  • 1 个回答
  • 28 Views
Martin Hope
fatkobra
Asked: 2023-03-10 19:50:42 +0800 CST

bash if-else 语句没有按预期工作

  • 6

我有一个脚本,我在其中检查执行代码(0 分配给SUCCESS和 1 分配给FAILURE)。我正在使用 if-else 语句来检查执行代码是 0 还是 1。

如果它是 0,我想将文本SUCCESS分配给变量 RESULT。否则将文本FAILURE分配给变量 RESULT。

注意:我需要在其他地方使用 RESULT。

这是我的代码:

#!/usr/bin/env bash

set -eo pipefail
RESULT="SUCCESS"
if [ "${STATUS}" != "0" ]; then
  RESULT="FAILURE"
else
  RESULT="SUCCESS"
fi
   
cat "${STATUS}"
echo
echo ${RESULT}

但是,看起来无论我发送 0 还是 1 都没有关系,结果总是失败。这是输出:

[e2e-st] 0
[e2e-st] 
[e2e-st] FAILURE

我希望获得 0 个SUCCESS,而不是 0 个FAILURE。

关于我做错了什么或我可以做些什么的任何提示?


在此处获得帮助和解决方案后:

    - name: STATUS
      value: $(steps.step-run-script.exitCode.path)
  script: |
    #!/usr/bin/env bash
    set -eo pipefail

    echo "STATUS=$STATUS"
    ls -l "$STATUS"
    STATUSVALUE=$(cat "$STATUS")
    echo ${STATUSVALUE}

    if [ "$STATUSVALUE" -eq 0 ]; then
      echo ok
      RESULT="SUCCESS"
      echo ${STATUSVALUE}
      echo ${RESULT}
    else
      echo failed...
      RESULT="FAILURE"
      echo ${STATUSVALUE}
      echo ${RESULT}
    fi      

这就是我得到的:

[e2e-st : send-test-report-and-status-to-jira-comment] STATUS=/tekton/steps/step-run-script/exitCode
[e2e-st : send-test-report-and-status-to-jira-comment] -rw-r--r--. 1 1000 1002340000 1 Mar 10 14:03 /tekton/steps/step-run-script/exitCode
[e2e-st : send-test-report-and-status-to-jira-comment] 0
[e2e-st : send-test-report-and-status-to-jira-comment] ok
[e2e-st : send-test-report-and-status-to-jira-comment] 0
[e2e-st : send-test-report-and-status-to-jira-comment] SUCCESS

和我的测试失败的另一次运行:

[e2e-st : send-test-report-and-status-to-jira-comment] STATUS=/tekton/steps/step-run-script/exitCode
[e2e-st : send-test-report-and-status-to-jira-comment] -rw-r--r--. 1 1000 1002340000 1 Mar 10 14:05 /tekton/steps/step-run-script/exitCode
[e2e-st : send-test-report-and-status-to-jira-comment] 1
[e2e-st : send-test-report-and-status-to-jira-comment] failed...
[e2e-st : send-test-report-and-status-to-jira-comment] 1
[e2e-st : send-test-report-and-status-to-jira-comment] FAILURE

十分感谢你的帮助!一切都按预期工作。

bash
  • 1 个回答
  • 72 Views
Martin Hope
Meenakshi Sreejith
Asked: 2023-03-10 17:50:42 +0800 CST

如何读取一天的每小时文件并合并它?

  • 7

我有一个 Netcdf 文件文件夹。这些文件是一个月的六个小时风文件。我想合并所有文件。我不知道如何制作一个 shell 脚本来按小时顺序读取文件以合并它们。请帮忙。

anal_00z20230118.nc
anal_00z20230119.nc
anal_00z20230120.nc
anal_00z20230121.nc
anal_00z20230122.nc
anal_00z20230123.nc
anal_00z20230124.nc
anal_00z20230125.nc
anal_00z20230126.nc
anal_00z20230127.nc
anal_00z20230128.nc
anal_00z20230129.nc
anal_00z20230130.nc
anal_00z20230131.nc
anal_06z20230118.nc
anal_06z20230119.nc
anal_06z20230120.nc
anal_06z20230121.nc
anal_06z20230122.nc
anal_06z20230123.nc
anal_06z20230124.nc
anal_06z20230125.nc
anal_06z20230126.nc
anal_06z20230127.nc
anal_06z20230128.nc
anal_06z20230129.nc
anal_06z20230130.nc
anal_12z20230118.nc
anal_12z20230119.nc
anal_12z20230120.nc
anal_12z20230121.nc
anal_12z20230122.nc
anal_12z20230123.nc
anal_12z20230124.nc
anal_12z20230125.nc
anal_12z20230126.nc
anal_12z20230127.nc
anal_12z20230128.nc
anal_12z20230129.nc
anal_12z20230130.nc
anal_18z20230118.nc
anal_18z20230119.nc
anal_18z20230120.nc
anal_18z20230121.nc
anal_18z20230122.nc
anal_18z20230123.nc
anal_18z20230124.nc
anal_18z20230125.nc
anal_18z20230126.nc
anal_18z20230127.nc
anal_18z20230128.nc
anal_18z20230129.nc
anal_18z20230130.nc
bash
  • 1 个回答
  • 36 Views
Martin Hope
ccdavies
Asked: 2023-03-10 17:38:28 +0800 CST

Bash 变量:

  • 5

我是 bash 的新手,正在尝试理解我已经通过的脚本。在脚本中,我有以下变量:

site_source="${site_host[$i]}:public_html"

任何人都可以确认冒号在这里的意思吗?我需要将存储在这个变量中的路径更改为根路径,所以我认为删除该:public_html部分可以实现这一点(但没有)。

bash
  • 1 个回答
  • 25 Views
Martin Hope
chandra
Asked: 2023-03-09 02:28:12 +0800 CST

将 $HOME/.bashrc 中的代码转换为函数

  • 5

我的文件中有以下代码片段$HOME/.bashrc:

export RED='\e[0;31m'
export GREEN='\e[0;32m'
export YELLOW='\e[0;33m'
export BLUE='\e[0;34m'
export MAGENTA='\e[0;35m'
export CYAN='\e[0;36m'
export WHITE='\e[0;37m'
#
export BOLD_RED='\e[1;31m'
export BOLD_GREEN='\e[1;32m'
export BOLD_YELLOW='\e[1;33m'
export BOLD_BLUE='\e[1;34m'
export BOLD_MAGENTA='\e[1;35m'
export BOLD_CYAN='\e[1;36m'
export BOLD_WHITE='\e[1;37m'
#
export BLACK='\e[\030'
export RESET_COLOR='\e[m'
export RESET_TERMINAL_COLOR="tput sgr0"

我想将它模块化为一个可从所有脚本调用的函数。

我已经从我的文件中删除了代码$HOME/.bashrc并在我的可执行路径中创建了一个名为colorize-terminal包含的文件

#!/bin/bash
function colorize-terminal {
[The code above goes in here]
}

并尝试source colorize-terminal在脚本中对其进行测试。但它没有给出预期的着色。

我究竟做错了什么?

谢谢。

解决方案:根据下面的评论和我发现的

  1. 我需要重命名函数和文件colorize-terminal以用下划线替换连字符,因此:colorize_terminal。AFAICT,shell 脚本名称接受连字符,但函数并非如此。他们接受下划线。

  2. 我需要添加colorize_terminal为文件中的最后一行。

  3. 获取函数文件后,我对其进行了测试echo -e ${BOLD_YELLOW}"Hello there!"${RESET_COLOR},它按预期工作。

  4. 如果我在登录时需要颜色,我可以在$HOME/.bashrc.

bash
  • 1 个回答
  • 48 Views
Martin Hope
Lee
Asked: 2023-03-08 23:31:06 +0800 CST

Bash 在函数中创建名为数组的参数

  • 5

我正在尝试编写一个函数,该函数使用传入的名称写入数组。给定以下 bash 函数:

function writeToArray {
    local name="$1"
    echo "$name"
    declare -a "$name"
    ${name[0]}="does this work?"      
}

像这样运行:

writeToArray $("test")

我收到两个错误:

bash: declare: `': not a valid identifier
=does this work?: command not found

我期待能够做到这一点:

writeToArray $("test")
for item in "${test[@]}"; do
        echo "item"
        echo "$item"
done

这应该打印:

item
does this work?

我怎样才能正确配置它来写入数组(test在示例中命名,这样这个命名的数组test在函数外是可读的)?

bash
  • 1 个回答
  • 37 Views
Martin Hope
Daniil Rozanov
Asked: 2023-03-06 16:03:30 +0800 CST

如何从 shell 关闭程序的标准输出?

  • 5

我的意思是不将 stdout 重定向到 /dev/null,而是在启动我的程序之前阻止 stdout,因此例如我的所有内容都write(1, "dd", 2);将返回 -1,就好像我的设备中不存在 stdout 一样。

bash
  • 1 个回答
  • 22 Views
Martin Hope
God of Money
Asked: 2023-03-06 13:31:07 +0800 CST

如何按顺序和无限循环运行 bash 脚本?

  • 5

如何运行 /tmp/1.sh /tmp/2.sh /tmp/3.sh /tmp/4.sh 然后循环返回以再次运行 /tmp/1.sh?最好在无限循环中

bash
  • 1 个回答
  • 47 Views

Sidebar

Stats

  • 问题 199037
  • 回答 263511
  • 最佳答案 131755
  • 用户 66345
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve