Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

3
ps命令的CPU字段如何排序?
我正在尝试执行一条小命令,以查找使用最多CPU能力的进程。 首先,我使用ps aux > file.txt然后cut -c 16-20 file.txt | sort -n | tail -5。 我得到的结果是这样的: 1.0 2.7 8. 14.5 14.5 所以我的问题是如何将%CPU用法和其他字段一起输出?
18 bash  shell-script  sort  ps 

3
并行循环浏览两个文件的行
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 5年前关闭。 我正在编写的脚本的目的是比较两个系列的文件。文件名本身存储在两个单独的文件中,每行一个路径。我的想法是有两个while read循环,每个文件名列表一个,但是如何将两个循环混在一起? while read compareFile <&3; do if [[ ! $server =~ [^[:space:]] ]] ; then #empty line exception continue fi echo "Comparing file - $compareFile" if diff "$compareFile" _(other file from loop?_) >/dev/null ; then echo Same else echo Different fi done …

1
如何将stdout和stderr重定向到文件并显示stderr到控制台?
我知道如何重定向到文件,并使用tee;在基本水平上。所以 $ alias outanderr='bash -c "echo stdout >&1; echo stderr >&2"' # A fake "application" displaying both output and error messages. $ outanderr 1>file # redirect stdout to a file, display stderr stderr $ outanderr 2>file # redirect stderr to a file, display stdout stdout $ outanderr 1>file 2>&1 # …


2
在bash脚本中循环浏览制表符描述的文件
这是我到目前为止的内容: #!/bin/bash while read line; do DB=$(echo $line | cut -f1) USER=$(echo $line | cut -f2) PASS=$(echo $line | cut -f3) echo DB=$DB USER=$USER PASS=$PASS done < users.txt 和输入文件的示例: drupal_1 drupal1 tmmjXSWL drupal_2 drupal2 FHiJSYHM drupal_3 drupal3 b7bFNj06 drupal_4 drupal4 0AaV62EL 并从脚本输出: DB=drupal_1 drupal1 tmmjXSWL USER=drupal_1 drupal1 tmmjXSWL PASS=drupal_1 drupal1 …
18 bash 

4
区分多个文件,如果不相等则为true
我有许多文件,我想检查所有那些文件是否具有相同的内容。 我可以使用哪个命令行来检查? 用法可能类似于: $ diffseveral file1 file2 file3 file4 结果: All files equals 要么 Files are not all equals
18 bash  diff 

4
为什么找不到命令后很长的延迟?
通常,当我输错ls之类的命令时(例如,我在键入's'之前按了ENTER),在终端显示后会有很长的(〜2s)延迟: bash: l: command not found... 我可以理解输入错误密码后出现类似延迟的原因,请问为什么输入错误密码后会有较大延迟?。但是,为什么在无法识别的命令后延迟呢?是否FAIL_DELAY在/etc/login.defs也影响呢?

4
完全重启Bash
有没有一种方法可以完全重新启动Bash并重新加载.bashrc等等.profile?在编辑这些文件后,我想确保所做的更改能够正确进行。



7
收集并行后台进程的退出代码(子shell)
假设我们有一个bash脚本,如下所示: echo "x" & echo "y" & echo "z" & ..... echo "Z" & wait 有没有办法收集子外壳程序/子进程的退出代码?寻找这样做的方法,找不到任何东西。我需要并行运行这些子shell,否则,这会更容易。 我正在寻找一个通用的解决方案(我有一个未知/动态数量的子进程可以并行运行)。

1
Bash中'2>>((command)')重定向的含义
不久前,我制作了一个脚本,并在其中添加了一些日志记录,但是我忘记了日志记录的重定向是如何工作的:-( 其要点是: #!/bin/bash LOGFILE=/some/path/mylogfile ( # here go my commands which produce some stdout # and, if something goes wrong, also some stderr ) 1>>${LOGFILE} 2> >( tee -a ${LOGFILE} >&2 ) 当我运行脚本时,它不会将任何内容打印到stdout,而只会打印到的内容stderr。日志文件同时${LOGFILE}捕获stdout和stderr。 当我运行脚本并且终端上没有输出时,我知道一切都很好。如果有任何输出,我知道出了点问题,可以检查日志文件以找出问题所在。 现在让我感到困惑的重定向部分的语法是: 2> >( some command ) 谁能解释那里发生了什么?

2
如何从嵌套的case语句中退出while循环?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Unix&Linux Stack Exchange 的主题。 4年前关闭。 在下面的脚本中-提示用户确认要继续运行潜在的错误脚本-当用户Y在提示符下输入时-该脚本将跳出该case块,仅while再次发送回循环中。 #! /bin/bash set -e echo echo "bad install start" echo "-----------------------------------------" while true; do read -p "this script will probably fail - do you want to run anyway?" yn case $yn in [Yy]*) ##### WHAT GOES HERE?? ##### ;; [Nn]*) exit ;; …

2
双引号内的单引号和Bash参考手册
Bash手册在标题为双引号的第3.1.2.3节中说: 用双引号('“')引起来的字符将保留所有引号内的字符的文字值,但'$','`','\'除外,并且在启用历史记录扩展时,会使用'!'。 目前,我关心的是单引号(')。 在上一节第3.1.2.2节中描述的特殊含义是: 将字符括在单引号(')中可保留引号内每个字符的字面值。即使在单引号前加反斜杠,也不能在单引号之间引起单引号。 结合两个论述, echo "'$a'" 其中a未定义变量(因此$a=空字符串),应$a在屏幕上打印,因为'',如果它在内部具有特殊含义,则可以避免$特殊解释。而是打印''。为什么这样?
18 bash  shell  quoting 

2
在bash中,我如何回显变量名,而不是变量值?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 5年前关闭。 假设我var在bash中有一个变量。我可以给它赋一个值。例如,我将其设置为字符串: var="Test" 我要echo的名字var,而不是所拥有的价值var。(我可以用做后者echo $var,但实际上我想做前者。) SO对此问题的答案说可以使用echo ${!var},但是当我这样做时,我只回显一个空行。例如,此bash脚本 #!/bin/bash echo "Hi" var="Test" echo ${!var} echo "Bye" 返回此输出: Hi Bye 在Hi和Bye之间只有一个空行,而不是var。我究竟做错了什么? 我在Ubuntu 10.04.4上运行bash 4.1.5(1)。
18 bash 

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.