Articles of bash

在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 (这是我想要的)。

我怎样才能在每次启动时运行我自己的脚本

我有一个问题,我怎么能在Ubuntu的每个启动时间运行我自己的bash脚本。 假设我有一个正在做某种特定工作的脚本。 现在我想让它在启动我的Ubuntu系统的时候自动运行。

Edid信息

重新定义问题: 有没有办法获得连接的显示器的序列号? 我想收集显示器的Edid信息。 当我用-logverbose选项运行X时,我可以从xorg.0.log文件中得到它。 但问题是,如果我切换显示器(插入当前显示器,然后插入另一台显示器),那么没有办法得到这个信息。 有什么办法dynamic(或运行时)获取EDID? 或者一旦显示器连接和断开连接,将会通知我的任何实用程序/工具? 我正在使用LFS-6.4。 问候,SHW