Questions tagged «bash»

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

6
在文本文件中获取第n列
我有一个文本文件: 1 Q0 1657 1 19.6117 Exp 1 Q0 1410 2 18.8302 Exp 2 Q0 3078 1 18.6695 Exp 2 Q0 2434 2 14.0508 Exp 2 Q0 3129 3 13.5495 Exp 我想要这样的每一行的第二个和第四个单词: 1657 19.6117 1410 18.8302 3078 18.6695 2434 14.0508 3129 13.5495 我正在使用此代码: nol=$(cat "/path/of/my/text" | wc -l) x=1 while …
86 linux  bash 

12
如何创建一个bash脚本来检查SSH连接?
我正在创建一个bash脚本,该脚本将登录到远程计算机并创建私钥和公钥。 我的问题是,远程计算机不是很可靠,并且它们并非总是处于启动状态。我需要一个bash脚本来检查SSH连接是否建立。在实际创建密钥以供将来使用之前。
86 bash  ssh  connection 

9
如何使用脚本启动具有特定工作目录的Git Bash窗口?
如何使用脚本(Bash或Windows批处理)启动具有指定工作目录的新Git Bash窗口? 我的目标是从一个脚本启动多个Git Bash窗口,每个窗口都设置到不同的工作目录。这样,我可以在启动计算机后快速开始工作,而不必打开Git Bash窗口并将每个窗口导航到正确的工作目录。 我不是在问如何更改默认工作目录,就像这个问题一样,而是从脚本启动具有不同工作目录的一个或多个终端窗口。


5
如何保持两个文件夹自动同步?
我想要一个文件夹及其所有子树的同步副本。 它应该以这种方式自动工作:每当我在原始文件夹中创建,修改或删除内容时,这些更改都应自动应用于同步文件夹。 哪个是完成此任务的最佳方法? 顺便说一句:我在Ubuntu 12.04上 最终目标是拥有单独的实时备份副本,而无需使用符号链接或安装。我使用Ubuntu One在计算机之间同步数据,过了一会儿出现问题,并且在同步期间所有数据都丢失了。 因此,我想进一步采取措施来保留数据的备份副本: 我将数据存储在“文件夹A”中 我需要我当前问题的答案才能创建“文件夹A”到“文件夹B”的单向同步(cron带有rsync?的脚本可能是?)。我需要它只能是从A到B的单向方式,对B的任何更改都不能应用于A。 我只需保持与Ubuntu One的同步“文件夹B”, 就可以通过这种方式将A中的任何更改都添加到B中,然后将其从U1中检测到并同步到云中。如果出了什么问题,并且U1删除了B上的数据,我总是将它们放在A上。 受到lanzz评论的启发,另一个想法可能是在启动时运行rsync来备份Ubuntu One下的文件夹内容,并仅在rsync完成后才启动Ubuntu One。 您如何看待?如何知道rsync何时结束?

15
grep在文件中的不同行上有多个字符串(即整个文件,不是基于行的搜索)?
我希望到grep包含文件的话Dansk,Svenska或者 Norsk任何线,以可用的返回码(因为我真的只喜欢有这些字符串包含了信息,我的一行又进了一步,然后这一点)。 我有很多这样的文件,其中有行: Disc Title: unknown Title: 01, Length: 01:33:37.000 Chapters: 33, Cells: 31, Audio streams: 04, Subpictures: 20 Subtitle: 01, Language: ar - Arabic, Content: Undefined, Stream id: 0x20, Subtitle: 02, Language: bg - Bulgarian, Content: Undefined, Stream id: 0x21, Subtitle: 03, Language: cs - Czech, Content: Undefined, Stream …
85 bash  awk  grep 

5
什么是间接扩展?$ {!var *}是什么意思?
我正在阅读《Bash初学者指南》。它说: 如果的第一个字符PARAMETER是感叹号,则Bash将从其余部分形成的变量的值PARAMETER用作变量的名称;然后扩展此变量,并在其余替换中使用该值,而不是其PARAMETER自身的值。这称为间接扩展。 给出的示例是: franky ~> echo ${!N*} NNTPPORT NNTPSERVER NPX_PLUGIN_PATH 我在这里不太明白: 由其余部分形成的变量的值 PARAMETER 由于PARAMETER是刚刚!N*的话 其余的 PARAMETER 就是N*。这如何形成变量?Bash在那里搜索了所有可能的命令吗?
85 bash  indirection 

8
如何使用Bash遍历日期?
我有这样的bash脚本: array=( '2015-01-01', '2015-01-02' ) for i in "${array[@]}" do python /home/user/executeJobs.py {i} &> /home/user/${i}.log done 现在,我想遍历日期范围,例如2015年1月1日至2015年1月31日。 如何在Bash中实现? 更新: 很好:在上一次运行完成之前,不应开始任何作业。在这种情况下,executeJobs.py完成后,bash提示$将返回。 例如,我可以加入wait%1我的循环吗?
85 bash  loops  date 

2
如何将.bashrc导出到.zshrc?
我正在尝试从Bash迁移到zsh。 我将.bashrc直接放到.zshrc中,当我再次尝试使用Bash时,它导致了很多错误。 如何将.bashrc导出到.zshrc?
85 zsh  bash  zshrc 

20
使用find和sed递归重命名文件
我想浏览一堆目录,并将以_test.rb结尾的所有文件重命名为以_spec.rb结尾的文件。这是我从未真正弄清楚如何使用bash的事情,因此这一次我想我会花些力气将它钉牢。但是到目前为止,我的最大努力是: find spec -name "*_test.rb" -exec echo mv {} `echo {} | sed s/test/spec/` \; 注意:exec之后有一个额外的回显,以便在测试时打印命令而不是运行命令。 当我运行它时,每个匹配文件名的输出是: mv original original 即用sed替代已丢失。诀窍是什么?
85 bash  scripting  sed  find  replace 

6
字符串变量中的第N个字
在Bash中,我想通过变量获取字符串的第N个字。 例如: STRING="one two three four" N=3 结果: "three" 什么Bash命令/脚本可以做到这一点?
85 bash 

10
如何调用bash,在新shell中运行命令,然后将控制权交还给用户?
这必须是非常简单或非常复杂的,但我无法找到任何关于它...我试图打开一个新的bash的实例,然后运行它里面一些命令,并给出了控制权交还给用户内部的同一实例。 我试过了: $ bash -lic "some_command" 但这会some_command在新实例内部执行,然后将其关闭。我希望它保持打开状态。 还有一个细节可能会影响答案:如果我可以使用它,我.bashrc将以别名的形式使用它,因此,alias实现的奖励点!
85 shell  bash 

7
使用Shell脚本在Docker容器中运行脚本
我正在尝试创建用于设置Docker容器的Shell脚本。我的脚本文件如下所示: #!bin/bash docker run -t -i -p 5902:5902 --name "mycontainer" --privileged myImage:new /bin/bash 运行此脚本文件将在新调用的bash中运行容器。 现在,我需要运行一个脚本文件(test.sh),该文件已经位于上述给定的shell脚本的容器中(例如:cd /path/to/test.sh && ./test.sh)。
85 bash  shell  docker 


2
使用xargs并行运行程序
我目前有当前脚本。 #!/bin/bash # script.sh for i in {0..99}; do script-to-run.sh input/ output/ $i done 我希望使用xargs并行运行它。我努力了 script.sh | xargs -P8 但是执行上述操作一次只能执行一次。-n8也没有运气。在要在循环脚本中执行的行的末尾添加&会尝试一次运行该脚本99次。我如何一次只执行8次循环,最多执行100次。

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.