小编gni*_*urf的帖子

简单的bash CSV数组问题

我正在尝试做一些相当简单的事情,而我只是做得很短.这是我正在尝试使用的示例变量:

20,80,443,53
Run Code Online (Sandbox Code Playgroud)

该变量只是由逗号分隔的一串端口.我需要把它们放到一个数组中.

csv arrays bash

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

如何重置硬限制?

试图增加我的堆栈大小(初始值是8900(或多或少)),我做了以下:

ulimit -s 10000
Run Code Online (Sandbox Code Playgroud)

然后我的堆栈大小是10000.然后我做了:

ulimit -aH
Run Code Online (Sandbox Code Playgroud)

从现在开始,我无法增加堆栈大小,它总是会说:

bash: ulimit: stack size: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

但我可以减少它.那么我做了:

ulimit -s 8000
Run Code Online (Sandbox Code Playgroud)

我的堆栈大小为8000.

现在它出现了奇怪的事情,这就是我正在改变的"软"限制,因为我没有做任何事情sudo,我应该能够再次达到10000或9000,但是不可能.这让我觉得我改变的是"硬"限制,因为它可以减少它,但不能增加它,但我没有从根本工作!

  1. 我是否有可能在不使用的情况下更改了"硬"限制sudo
  2. 如果我更改了"硬"限制,我该如何将其重置为初始默认值?

bash

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

如何读取特定行和特定位置?

我在读取特定行和特定位置的字符串时遇到问题。我有一个输入文件,每行中的每个值都有一个固定的位置和固定的长度。这是我的输入文件的示例:

sltele     Hoodie   24051988 d12Hdq
sltele     Hoodie   07051987 d30Hdq
sltele     Hoodie   07082011 d08Hdq
sltele     Hoodie   09081961 d04Hdq
sltele     Hoodie   20041962 d14Hdq
sltele     Hoodie   20032000 d01Hdq
sltele     Hoodie   13062002 d05Hdq
Run Code Online (Sandbox Code Playgroud)

我需要在第一行的第三列中读取一个字符串。所以,我用了这个

awk 'NR==1 {print $2, $3}' inputfile.inp
Run Code Online (Sandbox Code Playgroud)

如何以字符位置为参数获得准确结果?(12-18 日和 21-28 日)

unix bash shell solaris file

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

返回字符串比较结果 - bash

我正在编写一个小函数来比较两个文件的md512sums.我不能说我擅长bash,但我需要返回一个简单的结果,评论部分是长代码.它要求减少.

顺便说一句,如果有人有任何想法来改进我的代码,我将不胜感激.

function TestStage()
{
    local URL="distfiles.gentoo.org/releases/${1:7:5}/current-stage3/${1}"
    wget -q ${URL}.DIGESTS
    local SUM_WEB=`cat ${1}.DIGESTS | sed '2q;d'`
    local SUM_LOC=`openssl dgst -r -sha512 ${1}`
    ####### time to return
    return [[ "${SUM_WEB:0:128}" == "${SUM_LOC:0:128}" ]]

    #if [ "${SUM_WEB:0:128}" == "${SUM_LOC:0:128}" ]
    #then
    #    rm ${1}.DIGESTS
    #    return 0
    #else
    #    rm ${1}.DIGESTS
    #    return 1
    #fi
}
Run Code Online (Sandbox Code Playgroud)

正如你可能已经猜到了$1stage3-<arch>-<release>.tar.bz2.

linux bash scripting gentoo

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

如何删除方括号和里面的任何文字?

我有一个文档,在方括号内包含一些文本,例如:

The fish [ate] the bird.
[This is some] text.
Here is a number [1001] and another [1201].
Run Code Online (Sandbox Code Playgroud)

我需要删除方括号和方括号内的所有信息,例如:

The fish  the bird.
 text.
Here is a number  and another .
Run Code Online (Sandbox Code Playgroud)
  • 我试过了sed -r 's/\[[+]\]//g' file.txt,但这没用.

如何删除模式中的任何内容[<anything>]

bash sed

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

通过ssh传递find命令的问题

我正在尝试阅读特定文件的内容.我有多个这些文件所在的主机.我在ssh期间传递下面的命令,以便它可以运行并获得输出.

  1. 使用下面的命令时,我得到指定的错误.(它主宰但没有任何反应)

    $ ssh host "more $(find /my/path -name "test*")"
    find: 0652-010 The starting directory is not valid.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 当使用exec它不工作时,(它的sshed主机但没有任何反应)

    $ ssh host "find /my/path -name "test*" -exec more {} \;"`
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用xargs时,它按预期工作

    $ ssh host "find /my/path -name "test*" | xargs more"
    
    Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么方法1和2不起作用?

请注意,如果我在远程主机上直接运行命令,则每种方法都有效.例如,以下所有命令在远程主机中按预期工作.

more $(find /my/path -name "test*")

find /my/path -name "test*" -exec more {} \;

find /my/path -name "test*" | xargs more
Run Code Online (Sandbox Code Playgroud)

unix linux ssh bash solaris

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

在 bash 中将数字字符串的数字传递给数组

我有一个号码,说

number=5684398
Run Code Online (Sandbox Code Playgroud)

我想将其数字存储到数组的字段中,coolarray如下所示:

coolarray[0]=5
coolarray[1]=6
coolarray[2]=8
coolarray[3]=4
coolarray[4]=3
coolarray[5]=9
coolarray[6]=8
Run Code Online (Sandbox Code Playgroud)

我该如何继续?

bash

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

shell 脚本如何从外部编辑器获取输入(就像 Git 那样)?

我想要一个 shell 脚本暂停,从外部编辑器获取输入,然后恢复。像这样的伪代码作为一个最小的例子:

testScript(){
  content=""
  # set value of content using vim...
  echo "$content"
}
Run Code Online (Sandbox Code Playgroud)

我不想使用包,只想使用 Bash。

git vim bash shell

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

shell变量旁边的连字符是什么

我在一些脚本中看到有一个连接到shell变量的连字符.例如:

if [ -z ${X-} ]
Run Code Online (Sandbox Code Playgroud)

变量旁边的这个连字符符号在这里做什么.我在网上找不到任何相关文档.

bash shell scripting

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

如何在ubuntu终端上更正配置grails?

我有以下内容.bashrc:

JAVA_HOME="/usr/bin/java"
GRAILS_HOME="/root/grails"
PATH=$PATH:$JAVA_HOME:$GRAILS_HOME/bin

export JAVA_HOME
export GRAILS_HOME
export PATH
Run Code Online (Sandbox Code Playgroud)

但是,当我> grails在终端中执行时,我得到:

root@localhost:~# grails
grails: JAVA_HOME is not a directory: /usr/bin/java
Run Code Online (Sandbox Code Playgroud)

当我试图替换为

JAVA_HOME="/usr/share/java"
Run Code Online (Sandbox Code Playgroud)

然后结果是:

root@localhost:~# grails
grails: JAVA_HOME is not defined correctly; can not execute: /usr/share/java/bin/java
Run Code Online (Sandbox Code Playgroud)

那里我想念的是什么?

java ubuntu

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

标签 统计

bash ×9

shell ×3

linux ×2

scripting ×2

solaris ×2

unix ×2

arrays ×1

csv ×1

file ×1

gentoo ×1

git ×1

java ×1

sed ×1

ssh ×1

ubuntu ×1

vim ×1