Articles of bash

configurationBash脚本以在其他人的计算机上工作

我创build了一个bash脚本,我想分享给其他人使用脚本下载video文件,将它们存储在适当的文件夹中(这对于应用程序是必不可less的),并允许用户在它们之间循环,使用getopts用户可以通过标志发送特定的命令 我从来没有这样做过,所以我不确定我需要什么“configuration”的要求,所以它适用于其他人民电脑。 我希望他们可以轻松地使用自制软件或其他软件包pipe理器下载,自动设置所需的组件,并让他们能够使用它 我知道我必须在适当的位置为他们创build文件夹和手册页。 这是否需要一个生成文件? 我应该考虑什么其他的东西? 我的谷歌search技能是吸吮,所以任何链接将不胜感激

防止在bash中意外的历史编辑

我最近从tcsh切换到bash,有一件事情让我沮丧,bash是如何处理历史的。 我经常提出一个以前的历史命令,并开始编辑它,但意识到我需要先运行一个不同的命令。 在bash中,这编辑了原来的命令,我看不到我最初input的内容。 在tcsh中,当我使用向上和向下箭头时,编辑的命令位于堆栈的底部,并准备好继续编辑或在我准备好时运行。 我发现这个问题 ,有几个答案有助于理解bash如何重新运行和编辑历史,但我仍然不知道如何改变这种行为(如果存在这样的事情)。 是否有可能阻止bash编辑已经运行的命令? 例如,如果我跑 abcd efgh ijkl 然后使用箭头向上和向后退格,然后点击并input不同的命令“mnop”,我希望我的历史logging如下所示: abcd efgh ijkl mnop 目前看起来像: abcd * efg ijkl mnop 这可能看起来像一个微不足道的问题,但是当运行需要反复试验的多个pipe道的长命令时,这是一些大量的工作损失。

Bash循环2variables中带有空格的数组

我正在研究脚本来查找服务器上目录的磁盘使用情况。 我需要处理名称中包含空格的文件夹。 我在使用for循环来运行每个带有空格的variables时遇到了问题,因为它会将它们看作两个单独的variables。 当前摘要: scandest="/root/*" usedest="/root/fileusage/diskusage" diskusage=$(du -sh $scandest > $usedest) dir=($(cat $usedest|cut -f2|cut -c7-)) storage=($(cat $usedest|cut -f1)) echo "${dir[@]}" 这将输出以下内容: anaconda-ks.cfg file test fileusage install.log install.log.syslog 一旦运行我的循环,文件“文件testing”将被拆分。 所以,如果我可以用每个variables的引号来回显,那么我就可以继续。 或者,如果有人对我想要达到的目标有更好的了解,那我就是耳朵! 谢谢 编辑2 循环包含2个数组目录和存储 for ((i=0;i<${#dir[@]};i++)); do echo "${dir[$i]}" — "${storage[$i]}" done 这又输出: anaconda-ks.cfg — 4.0K file — 0 test — 16K fileusage — 12K install.log […]

如何安排工作和在Linux中传递参数并行运行

我想在特定的时间在后台运行脚本。 作业收到一个input参数。 为了安排工作,我发现我应该使用at命令并像这样运行它: at -f ./myjob now 它的工作。 但是,当我想用​​这样的参数运行它: at -f ./myjob 1 now 它给了我乱码时间错误信息。 有没有人有任何想法如何解决这个问题? 更新:我想用不同的参数并行运行作业。 喜欢这个 at -f ./myjob 1 now at -f ./myjob 2 now at -f ./myjob 3 now

bash:压缩其他文件时发送压缩文件

我有一个简单的bash脚本来通过很慢的networking下载大量的日志文件。 我可以在远程端压缩日志。 基本上是这样的: ssh: compress whole directory scp: download archive ssh: rm archive 使用lzma给出了很好的压缩,但压缩整个目录是缓慢的。 有没有什么工具或简单的方法来编写一个脚本,允许我压缩单个文件(或一堆文件),并开始下载,而其他文件/块仍在被压缩? 我正在考虑启动压缩为每个单一的文件在后台和循环下载/ rsync文件与正确的扩展名。 但后来我不知道如何检查压缩过程是否完成其工作

按包含小数的名称sorting文件

我在我的文件夹中有200个文件,我想按名称sorting。 这里是我的文件的一个简短的列表根据我的Linux电脑默认sorting他们的方式。 Name at 0.2142.png Name at 0.4284.png Name at 0.04284.png Name at 0.6426.png Name at 0.8568.png Name at 0.08568.png … 我想从最低到最高的名字,所以我的名单将成为 Name at 0.04284.png Name at 0.08568.png … Name at 0.2142.png Name at 0.4284.png Name at 0.8568.png … (我把elipses放在列表的中间,因为名字在0.08568.png和名字在0.2142.png之间有更多的文件)。 我还是新手编写bash文件,但我想我可以写一个sorting我的数字。 谢谢 附录: 由于文件名太长,我将它们缩写为Name at …真正的文件名是在t =时的径向速度倾斜的Planetary Vorticity ,最后是一个数字。 我希望你能理解为什么我不把它放在原来的问题上。 我也很确定我在下面的评论中说,我是Linux和Ubuntu的新手,我不知道如何创build文件列表。 我有一个MatLab代码,使用我上面提供的名称和适当的时间步骤来创build基于我的CFD数据的png文件。 当我在Linux计算机上打开文件夹时,文件会按照上面列出的方式自动sorting,我不知道为什么。 如果还有其他需要澄清的话,我会很乐意把它放在这里。

如何在terminal中以静音模式运行摩卡testing

我必须用不同的input多次运行摩卡testing。 我不喜欢等待结果 摩卡testing 会输出 testing摩卡 ✓ IT Test ✓ login with account (719ms) 2次传球(3s) 我喜欢以无声模式运行 摩卡testing testing开始 我可以运行其他testing,我不关心输出结果我运行Linux,所以无论什么想法将是伟大的:)

如何自动化多服务Web应用程序的Docker开发环境启动(在Linux上)

我现在必须执行以下9个步骤才能在Ubuntu 16.04上使用Docker启动我的开发堆栈,然后才能开始编写代码: 打开一个terminal,并进入服务#1的源代码目录 docker – 编写服务#1(Python / Django,Redis和Postgres容器) docker exec service1 bash; 启动Django dev服务器进行debugging 重复服务#2,使用terminal标签保持组织 打开一个terminal,并进入前端Angular应用程序源目录 用npm运行一个webpack dev服务器 打开一个或多个terminal,并cd到相应的源代码目录进行编辑 我尝试编写一个shell脚本,用gnome-terminal –tab -e "bash -c docker-compose up"等方式启动所有的东西,但是这样会变得笨拙,在尝试shell到容器中运行时会失败,例如gnome-terminal –tab -e "bash -c \"docker-compose exec service1 bash -c rundev.sh \"" 。 我也尝试过使用xdotool ,但是由于某种原因它无法识别xdotool shellterminal标签。 在两个后端服务上运行一个SPA,并在三个代码库上进行本地开发,对于Docker应用程序开发来说,这似乎不是一个奇怪的用例。 有没有人有任何build议的工具或替代开发环境设置简化的东西?

将bash脚本的结果传递给一个文本文件

我有一个问题,从下面的脚本结果到一个文件。 当我运行下面的脚本时,没有任何东西写到filecheck_output文件中。 #!/bin/bash cd /var/www/html/images/ results="$(find projects -name "*.*" | sort -n)" echo "${results}" > filecheck_output 脚本的名字是filecheck。 当我从脚本的末尾删除> filecheck_output节并从命令行运行./filecheck > filecheck_output ,脚本运行并将结果输出到filecheck_output文件中,没有任何问题。 为什么只有当我从命令提示符运行命令而不是从脚本运行命令时才会redirect输出?

在sed中的两个模式之间提取

input文本文件: #END this should not be extracted #BEGIN This should be extracted. #BEGIN keep going.. These lines should be extracted by our script. Everything here will be copied. #END That should be all. #BEGIN Nothing from here. #END 期望的输出: This should be extracted. #BEGIN keep going.. These lines should be extracted by our script. Everything […]