Questions tagged «bash»

有关为Bash命令外壳编写的脚本的问题。对于具有错误/语法错误的shell脚本,请在此处发布之前,使用shellcheck程序(或在Web shellcheck服务器中的https://shellcheck.net)进行检查。有关Bash交互使用的问题更可能是Super User而不是Stack Overflow上的话题。

4
Shell脚本,而读取行循环在第一行之后停止
我有以下shell脚本。目的是循环遍历目标文件的每一行(其路径是脚本的输入参数),并针对每一行工作。现在,它似乎只适用于目标文件的第一行,并在该行得到处理后停止。我的脚本有什么问题吗? #!/bin/bash # SCRIPT: do.sh # PURPOSE: loop thru the targets FILENAME=$1 count=0 echo "proceed with $FILENAME" while read LINE; do let count++ echo "$count $LINE" sh ./do_work.sh $LINE done < $FILENAME echo "\ntotal $count targets" 在中do_work.sh,我运行几个ssh命令。
107 bash  shell  ssh  while-loop 


8
Linux bash中波浪符号的含义(不是主目录)
首先,我知道这~/是主目录。CD ~或~/带我到主目录。 但是,cd ~X带我到一个特别的地方,那里X似乎什么都没有。 在bash中,如果我按“ cd ~”并按Tab,它将显示许多可能的~X选项,例如~mail和~postgres和~ssh。转到这些文件夹并执行一个操作,pwd向我显示这些文件夹不在主目录中。他们到处都是。 它们不是别名。我查过 它们不是env.变量,否则需要$。 设置这些链接的方式是什么?在哪里可以找到设置这些链接的位置?


11
unix diff的并行结果?
如何才能并排绘制unix diff命令的结果,而不是一个接一个地显示差异?参见以下示例: diff /tmp/test1 /tmp/test2 1,4c1,2 < asfdsadf < asdfsad < fsaf < fdsadf --- > asdfsafdsf > saf 6,8d3 < sadf < asdf < sadf 10d4 < fasd 12,13c6,14 < sadfa < fd --- > sadf > sadf > sadf > sadf > sadf > sadf > sadf > …
106 bash  unix  diff 

2
将命令输出存储到变量时如何保留换行符?
我在Linux上使用bash shell。我有这个简单的脚本…… #!/bin/bash TEMP=`sed -n '/'"Starting deployment of"'/,/'"Failed to start context"'/p' "/usr/java/jboss/standalone/log/server.log" | tac | awk '/'"Starting deployment of"'/ {print;exit} 1' | tac` echo $TEMP 但是,当我运行此脚本时 ./temp.sh 打印所有输出而没有回车/换行。不知道这是我将输出存储到$ TEMP还是echo命令本身的方式。 如何将命令的输出存储到变量并保留换行符/回车符?
106 linux  bash  shell  line-breaks 

13
如何使用bash脚本遍历所有git分支
如何使用bash脚本遍历存储库中的所有本地分支。我需要进行迭代,并检查分支和某些远程分支之间是否有任何区别。防爆 for branch in $(git branch); do git log --oneline $branch ^remotes/origin/master; done 我需要做上面给出的事情,但是我面临的问题是$(git branch)给了我存储库文件夹中的文件夹以及存储库中存在的分支。 这是解决此问题的正确方法吗?还是有其他方法可以做到? 谢谢
105 git  bash  git-bash 

9
如何将变量的值传递给命令的标准输入?
我正在写一个应该在某种程度上安全的shell脚本,即不要通过命令的参数传递安全数据,最好不要使用临时文件。如何将变量传递给命令的标准输入?或者,如果不可能,如何正确使用临时文件执行此类任务?
105 security  bash  stdin 

10
为什么sed无法将\ t识别为标签?
sed "s/\(.*\)/\t\1/" $filename > $sedTmpFile && mv $sedTmpFile $filename 我期望此sed脚本tab在每行之前插入一个,$filename但不是。由于某种原因,它t改为插入一个。
105 regex  bash  sed 

4
检测是否安装了自制程序包
我将要编写一个Shell脚本来检测系统中是否安装了几个自制程序包。有没有一种方法可以使用brew命令来实现? 我尝试使用的退出代码brew install <formula> --dry-run。但这将构建缺少的软件包。
104 bash  shell  homebrew 


7
Bash变量范围
请向我解释为什么最后echo一句话是空白的?我希望XCODE在while循环中将其增加到1: #!/bin/bash OUTPUT="name1 ip ip status" # normally output of another command with multi line output if [ -z "$OUTPUT" ] then echo "Status WARN: No messages from SMcli" exit $STATE_WARNING else echo "$OUTPUT"|while read NAME IP1 IP2 STATUS do if [ "$STATUS" != "Optimal" ] then echo "CRIT: $NAME …
104 bash  scope  pipe 

8
如何在bash中的函数内修改全局变量?
我正在与此: GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu) 我有一个如下的脚本: #!/bin/bash e=2 function test1() { e=4 echo "hello" } test1 echo "$e" 哪个返回: hello 4 但是,如果我将函数的结果分配给变量,e则不会修改全局变量: #!/bin/bash e=2 function test1() { e=4 echo "hello" } ret=$(test1) echo "$ret" echo "$e" 返回值: hello 2 我听说过在这种情况下使用eval,所以我在test1: eval 'e=4' 但是结果一样。 您能解释一下为什么未修改吗?如何保存test1函数的回显ret并修改全局变量?

7
我刚刚分配了一个变量,但echo $ variable显示了其他内容
这是一系列情况,它们echo $var可能显示出与刚刚分配的值不同的值。无论分配的值是“双引号”,“单引号”还是未引号,都会发生这种情况。 如何使外壳正确设置变量? 星号 预期的输出是/* Foobar is free software */,但是我得到了文件名列表: $ var="/* Foobar is free software */" $ echo $var /bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ... 方括号 预期值为[a-z],但有时我会收到一个字母! $ var=[a-z] $ echo $var c 换行符(换行符) 期望值是单独行的列表,但是所有值都在一行上! $ cat file foo bar baz $ …
104 bash  shell  sh  quoting 

7
从python中运行bash脚本
我的以下代码有问题: callBash.py: import subprocess print "start" subprocess.call("sleep.sh") print "end" sleep.sh: sleep 10 我希望10秒钟后打印“结束”。(我知道这是一个愚蠢的示例,我可以简单地在python中睡眠,但是这个简单的sleep.sh文件只是一个测试)
104 python  bash  call 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.