我正在尝试做一些相当简单的事情,而我只是做得很短.这是我正在尝试使用的示例变量:
20,80,443,53
Run Code Online (Sandbox Code Playgroud)
该变量只是由逗号分隔的一串端口.我需要把它们放到一个数组中.
试图增加我的堆栈大小(初始值是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,但是不可能.这让我觉得我改变的是"硬"限制,因为它可以减少它,但不能增加它,但我没有从根本工作!
sudo?我在读取特定行和特定位置的字符串时遇到问题。我有一个输入文件,每行中的每个值都有一个固定的位置和固定的长度。这是我的输入文件的示例:
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 日)
我正在编写一个小函数来比较两个文件的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)
正如你可能已经猜到了$1是stage3-<arch>-<release>.tar.bz2.
我有一个文档,在方括号内包含一些文本,例如:
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>]?
我正在尝试阅读特定文件的内容.我有多个这些文件所在的主机.我在ssh期间传递下面的命令,以便它可以运行并获得输出.
使用下面的命令时,我得到指定的错误.(它主宰但没有任何反应)
$ ssh host "more $(find /my/path -name "test*")"
find: 0652-010 The starting directory is not valid.
Run Code Online (Sandbox Code Playgroud)当使用exec它不工作时,(它的sshed主机但没有任何反应)
$ ssh host "find /my/path -name "test*" -exec more {} \;"`
Run Code Online (Sandbox Code Playgroud)使用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) 我有一个号码,说
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)
我该如何继续?
我想要一个 shell 脚本暂停,从外部编辑器获取输入,然后恢复。像这样的伪代码作为一个最小的例子:
testScript(){
content=""
# set value of content using vim...
echo "$content"
}
Run Code Online (Sandbox Code Playgroud)
我不想使用包,只想使用 Bash。
我在一些脚本中看到有一个连接到shell变量的连字符.例如:
if [ -z ${X-} ]
Run Code Online (Sandbox Code Playgroud)
变量旁边的这个连字符符号在这里做什么.我在网上找不到任何相关文档.
我有以下内容.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)
那里我想念的是什么?