【关于CentOS下Linux的bash 漏洞,查看和解决的方法】教程文章相关的互联网学习教程文章

linux-如何在bash -c命令中插入变量【代码】

这个问题已经在这里有了答案: > Difference between single and double quotes in Bash 6个> Defining a variable with or without export 14个我可以执行以下操作:$FOO="text" $echo $FOO $text但是如何将其包装在bash -c构造中?我尝试了这个但是失败了:$FOO="text" $bash -c 'echo $FOO' $# return nothing我之所以...

linux-bash和zsh之间运算符<<<的解释差异【代码】

在zsh中echo -n "Hello " | cat - - <<< "World"将打印Hello World但是在bash中将打印相同的命令World我的解释是,在zsh cat中,将在stdin上打开第一个文件描述符(第一个“-”选项),读取管道的“ Hello”,然后关闭stdin,然后以某种方式重新打开它(第二个“-”选项),然后在此处阅读-string“ World”,然后将它们关联到“ Hello World”. 但是我不明白bash会发生什么. strace给了我奇怪的结果:zsh $> echo -n "Hello " | strace cat -...

linux-BASH-使用相同“变量”的多个实例读入配置文件【代码】

我正在尝试读取配置文件,然后将配置的“部分”放入bash脚本中的数组中,然后运行该命令,然后再次重新遍历配置,并继续执行此操作,直到配置文件的末尾. 这是一个示例配置文件:PORT="5000" USER="nobody" PATH="1" OPTIONS=""PORT="5001" USER="nobody" PATH="1" OPTIONS=""PORT="5002" USER="nobody" PATH="1" OPTIONS=""我希望bash脚本能在第一个“部分”中阅读,并将其带入脚本中,然后运行以下命令:脚本名-p $PORT -u $USER -P $PA...

linux-bash中的字符串/数组操作?【代码】

我想在bash(.bashrc)中使用类似的方式,以便根据用户登录的comp设置别名.我不知道如何从10.0.0.210中获取210,然后再通过最佳方式列表“ user = xxx”$radek ='210' $mike ='209'#SSH_CLIENT='10.0.0.210 53039 22' <--- system variable $user = based on the 4th part of IP so $user = radek if 210$user = mike if 209alias sites='cd /var/lib/code/'+$user所以最终的别名看起来像 如果从210台计算机登录,则为“ cd / var / li...

【linux基础err】bash: cannot create temp file for here-document: No space left on device

博主的device还有剩余空间也出现了这个问题,不知是什么原因,不过删除一些无用的内容,或者将某些有用的内容移动到其他硬盘,之后就可以正常使用了。 参考: 1. cannot create temp file for here-document: No space left on device; 2. linux出现tmp空间满的情况解决; 完

linux-使用bash遍历文件(和目录)名称【代码】

我试图编写一个bash脚本来计算文件数和本地目录的目录数.这是我的第一次尝试:#!/bin/bash files=0 dir=0 for file in `ls` doif [ -d $file ]thendir=$(($dir+1))elsefiles=$(($files+1))fi done echo "files=$files, direcotries=$dir"但是,for命令没有像我期望的那样遍历文件和目录的名称.如果文件ou目录的名称包含空格,则无法正常工作.当名称中有空格时,变量“ file”将假定文件(或目录)名称中每个单词的值. 有什么办法吗?解...

linux-Bash:在后台运行可执行文件【代码】

我有一个包含长循环的可执行文件,因此我想在后台运行它,如何在Linux中使用bash脚本执行此操作? 我知道一种方法是Ctrl z,然后输入bg,如何在bash脚本中模拟这些按键?解决方法:linux中的任何可执行文件都可以在后台运行,如下所示:$./yourExecutable.exe&添加&末尾的字符. (假设yourExecutable.exe在当前工作目录中) 以后如何杀死它?$ps -ax | grep yourExecutable.exe您将得到如下输出:9384 pts/7 S+ 0:00 grep yourExec...

linux-bash —无条件的布尔表达式求值【代码】

我尝试使用bash,甚至尝试了文档和few threads,尽管似乎无法正确执行.S=(true false) if (( ${S[0]} || ${S[1]} )) thenecho "true" elseecho "false" fi>如何在bash下评估布尔表达式? (是否有机会修复上面的代码段?)>有没有可能评估它,如果没有,即直接将其分配给变量(如果没有操作,则没有)?解决方法:您需要像这样创建数组,而不是S =(true false):S=(1 0)然后,如果该块:if (( ${S[0]} || ${S[1]} )) thenecho "true" elseecho ...

linux-使用bash在ssh中使用Expect执行sudo【代码】

我想创建一个脚本来自动在多个Linux主机上进行安装.我使用ssh密钥登录到主机,并且在登录名内想执行sudo,我尝试使用Expect,我在工作站上有,但在运行脚本的服务器上没有.我该怎么做,这是我的尝试,但是没有运气:#!/bin/bashssh user@station04 <<EOF expect -d -c " send \"sudo ls\" expect {\"password:\" { send '1234'; exp_continue }\"$user@\"{send "exit\r"}default {exit 1} }" EOFexit结果:send: sending "sudo ls" to { ...

linux-如何正确引用此bash管道以进行监视?【代码】

我建立了以下管道:echo "scale=2;$(cat io | grep wchar | awk '{print $2}')/(1024^3)" | bc现在,我正在尝试观看.我对Bash的了解确实是临时的,所以我没有成功.尝试过这样的事情:watch echo "scale=2;$(cat io | grep wchar | awk '{print $2}')/(1024^3)" | bc # I understand why this failswatch 'echo "scale=2;$(cat io | grep wchar | awk '{print $2}')/(1024^3)" | bc' # Not enough bash understanding to understand w...

linux-如何在shell bash中提取模式以形成文本文件【代码】

我有一个文本文件,其中包含:toto.titi.any=val1 toto.tata.any=val2 toto.tete.any=val2如何从此文件中提取titi,tata和tete. 应该是这样的$cat myfile.txt | sed '......' 并且输出应该是titi tata tete解决方法:您真的需要sed吗?您可以使用cut:cut -d. -f2 filename

linux-是否可以从bash脚本设置超时?【代码】

这个问题已经在这里有了答案: > How do I limit the running time of a BASH script 4个有时我的bash脚本在没有明确原因的情况下挂起并保持 因此它们实际上可以永远挂起(脚本过程将一直运行,直到我杀死它为止) 是否可以结合bash脚本超时机制,以便在例如1/2小时后退出程序?解决方法:这种仅使用Bash的方法通过将函数作为后台作业运行以强制执行超时,从而将所有超时代码封...

linux-在bash中删除长度小于2的单词【代码】

我在CentOS 5.5上使用bash.我有一个用空格分隔的字符串,并且该字符串仅包含字母和数字,并且此字符串可能有多余的空间,例如,“单词”和“字符串”之间有多个空格:$exmple= "This is a lovey 7 words string"我想删除长度小于2的单词,在此示例中,需要删除单词“ a”和“ 7”.并删除所有多余的空间,一个单词和另一个单词之间只有一个空格. 因此字符串变为:"This is lovey words string"解决方法:编辑(基于ennuikiller的sed答案) 使...

linux-通过bash脚本与多个目录中的文件进行交互【代码】

我生成了一个脚本,该脚本可循环访问多个.csv文件,并将相关文件转换为UTF-8:#!/bin/bashcd /home/user/prod/ charset="text/plain; charset=iso-8859-1"for file in *.csv; doif [[ $(file -i "$file") == "$file: $charset" ]]; theniconv -f ISO-8859-1 -t UTF-8 "$file" > "$file.new";mv -f "$file.new" "$file"; fi done那行得通,但是我真正想要的是遍历驻留在不同路径中的文件.我试图从设置一个路径开始(而不是定义当前目录)...

linux-使用[!时,在Bash的IF-ELSE条件下找不到命令! -d“ $DIR”]【代码】

我有这样的代码#!/bin/bash DIR="test_dir/"; if [! -d "$DIR"]; then# If it doesn't create itmkdir $DIR fi但是为什么执行它给了我这个:./mycode.sh: line 16: [!: command not found什么是正确的方法?解决方法:在[和!之间添加空格.以及[]之前也是如此.#!/bin/bash DIR="test_dir/"; if [ ! -d "$DIR" ]; then# If it doesn't create itmkdir $DIR fi引用变量也是一个好主意:mkdir "$DIR"