Articles of bash

如何recursion删除具有不同扩展名的多个文件?

我正试图编写一个命令,从当前目录及其所有相关的子目录recursion地删除具有不同扩展名(* .extension1,* .extension2等)的几个文件。 到目前为止,我从另一篇文章中得到了这个命令,但是我不能在同一个命令行中修改多个文件。 find . -name "*.extension1" -type f -delete 是否如下简单? find . -name "*.extension1";"*.extension2" -type f -delete 正如一个侧面说明 ,这些都是我不需要的输出文件,但不是所有的都必须始终输出,所以一些扩展可能不存在。 这只是一般的清理命令。

在vim中显示所有不可见的字符

我知道关于这个在stackoverflow上有一些线程,但是当我在编辑器中编写“:set list”时,它似乎显示隐藏的字符,但它不会在我们遇到问题的代码中显示隐藏的字符。 有些时候,我们的代码中有一些不可见的符号,如果循环中断,我不知道符号如何到达那里,除了一些奇怪的键盘组合很多被意外键入。代码本身看起来是正确的,但看不见的符号打破。 我已经在网上search这个,但所有我能find似乎是在VIM的“:设置列表”命令,除了必须改变隐藏的字符的颜色,但虽然这似乎显示一些隐藏的字符,它不会显示问题那些。 我们得到两个象征十字架的符号,一个看起来像手枪。 我们也尝试在崇高的文本中添加“draw_white_space”设置,但是这似乎只是显示,好吧,像这样的空白,但结果显示在谷歌显示隐藏字符,所以我试了一下。 通过DiffMerge工具,我们能够看到符号的位置的唯一方法是在其他编辑器中看不到这些符号,但是我们实际上已经能够将符号复制到它自己的文件中,并且通过所有的grep带有-f grep选项的文件可以工作,但是在vim中显示字符比使用键绑定更容易。 有人有什么build议吗? 当问题是一个不可见的符号时,这导致我们使用更多的时间来debugging代码。

在bash脚本中使用屏幕

我正在远程服务器上运行游戏服务器,我使用分离的屏幕实例使其运行。 我现在正在创build一个脚本,可以用来closures服务器,备份所有重要的文件并重新启动,但是我在处理屏幕时遇到了一些困难。 我认为我可以通过在脚本中调用screen -r来切换到脚本中的分离屏幕(在服务器已经closures之后)。 但是,这似乎并没有工作,因为如果我从外部屏幕运行脚本它只是在该会话中启动服务器。 screen -r cd ~/servers/StarMade/ sh StarMade-dedicated-server-linux.sh screen -d 这是我认为会做的伎俩,但事实并非如此。 也许有人可以帮我在这里。 我不是一个bash专家。 事实上,这是我的第一个bash脚本,不包括“Hello World”。 谢谢。

Shell Bash脚本以升序打印数字

我真的是新的shell Bash脚本。 我需要按照用户input的给定任意数字,按照升序列印数字。 #!/bin/bash declare nos[5]=(4 -1 2 66 10) # Prints the number befor sorting echo "Original Numbers in array:" for (( i = 0; i <= 4; i++ )) do echo ${nos[$i]} done # # Now do the Sorting of numbers # for (( i = 0; i <= 4 ; i++ )) […]

亚行的奇怪行为拉在bash脚本

我想编写一个bash脚本来自动获取所有WhatsApp的备份,但我不明白是什么错误 #!/bin/bash adb start-server for file in $(adb shell ls /sdcard/WhatsApp/Databases) do adb pull /sdcard/WhatsApp/Databases/$file done 输出很奇怪: $ ./script.sh ' does not existsdcard/WhatsApp/Databases/msgstore-2014-10-28.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore-2014-10-29.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore-2014-10-30.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore-2014-11-01.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore-2014-11-02.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore-2014-11-03.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore-2014-11-04.1.db.crypt7 ' does not existsdcard/WhatsApp/Databases/msgstore.db.crypt7 因为“adb shell ls / […]

在Raspberry PI上启动后运行Shell脚本

我正在使用树莓派制作一个网站展示板,我想在加载后2分钟将一些按键发送到浏览器窗口。 该脚本发送Web服务器的login详细信息。 我有一个脚本,发送从telnet控制台工作正常的击键: #!/usr/bash username="username" password="password" echo "Setting Display" export DISPLAY=:0 echo "Sending Username" for char in $(sed -E s/'(.)'/'\1 '/g <<<"$username"); do xdotool key $char done xdotool key Tab echo "Sending Password" for char in $(sed -E s/'(.)'/'\1 '/g <<<"$password"); do xdotool key $char done xdotool key Return echo "Waiting 5 Seconds" sleep 5 […]

awk:通过特定的分隔符删除string

我有一个文件中的第二列有“:”分隔符的几列,我想删除第二列中的第一,第三和第四个string,并在该列中留下第二个string。 但是我有正常的分隔符空间,所以我不知道。 input: — 22:16050075:A:G 16050075 AG — 22:16050115:G:A 16050115 GA — 22:16050213:C:T 16050213 CT — 22:16050319:C:T 16050319 CT — 22:16050527:C:A 16050527 CA desired output: — 22 16050075 16050075 AG — 22 16050115 16050115 GA — 22 16050213 16050213 CT — 22 16050319 16050319 CT — 22 16050527 16050527 CA Wrong: cat df.txt | awk […]

Java执行bash脚本,错误= 26文本文件忙

我有一个编写Linux bash脚本的java代码,然后做一个chmod来添加执行权限,然后尝试执行它。 我得到一个IOException在进程开始时说错误= 26,文本文件繁忙。 我已validation文件已完成写入和stream已closures。 chmod工作正常,但我不断收到这个错误。 我注意到,如果我运行一个debugging器,并通过代码,它没有得到错误,所以很明显,有一个时间问题。 在我尝试执行bash脚本之前,如何确保chmod已经完成? 我想避免非可靠的解决scheme,如添加Thread.sleep(10000),以及“hacky”的东西,如将try / catch块中的执行放入循环中,直到成功。 我有相当数量的代码包装进程的启动与侦听线程等,但这里是它正在做的简化版本(也试过这个代码,它有相同的结果): String[] cmd1 = {"/bin/chmod", "750", postFile }; new ProcessBuilder(cmd1).redirectErrorStream(true).start().waitFor(); String[] cmd2 = { postFile }; new ProcessBuilder(cmd2).redirectErrorStream(true).start().waitFor(); 每次执行后,“postFile”都有正确的750个权限,但是没有执行(由于IOException)。

如何wget更新的目录文件

我想编写一个bash脚本来下载和安装最新的每日编译程序(RStudio)。 是否有可能让wget只下载目录中的最新文件http://www.rstudio.org/download/daily/desktop/ ?

将文件复制到保存文件夹结构的备份目录

我必须复制一个目录中的文件,到其备份目录,保留文件夹结构。 例如MyFolder/Test/aaa的文件aaa改为.MyFolder.bck/Test/aaa 我试图使用 cp –parents MyFolder/Test/aaa .MyFolder.bck; 但结果是.MyFolder.bck/MyFolder/Test/aaa而不是.MyFolder.bck/Test/aaa (这是我想要的)。