Articles of bash

跳过使用Wget成功下载的文件

所以我有这个Bash子例程使用wget下载文件,现在我的问题是如何跳过成功下载的文件。 该脚本下载了大量文件,一旦下载失败,它将重新下载所有文件,从头开始覆盖这些成功的下载(可能由于重新下载而不完整)。 那么如何跳过那些成功下载的文件呢? DownloadFile() { paramURL=$1 paramFilename=$2 if [ $flag_archive_fetch = "false" ]; then wget "–timeout=180" "–tries=5" "$paramURL" "-O" "${scratch_dir}$paramFilename" else unzip -o "$archive_file" "$paramFilename" -d "${scratch_dir}" fi touch "${scratch_dir}$paramFilename" }

Visual Studio 2017无法创build目录,mkdir退出代码:1

我已经将Visual Studio 2017连接到SSH服务器(Windows 10 Ubuntu Bash)。 编译时,我得到一个错误: F:\ Program Files(x86)\ Microsoft Visual Studio 2017 \ Common7 \ IDE \ VC \ VCTargets \ Application Type \ Linux \ 1.0 \ Linux.Common.targets(89,5):error:Could not create directories,mkdir exit code :1 Ubuntu中的用户有权创build目录。

寻找哪个程序运行另一个

我有一个运行在似乎是Redhat Linux的有限版本上的NAS。 我遵循指示来破解它,所以我可以有shell访问,这是一个很大的帮助。 我也做了一些修改,其他人已经做了修改,除了一个问题,他们似乎都工作得很好。 不知何故,每隔22天,系统就会closures。 我用一个运行ps的脚本来查找shutdown实际上是被调用的,但是我不知道什么程序调用了shutdown。 如果我重命名/ sbin / shutdown,那么我可以编写一个脚本来replace它。 但是,我想要的最重要的信息是程序调用关机。 如果一个程序运行我的脚本(phony / sbin / shutdown),我怎样才能找出什么程序叫我的脚本? 我希望能够从脚本内部,首先确定哪个程序称为脚本。 如果它更容易,我总是可以使用Perl脚本而不是bash脚本。

如何在bash脚本中执行一个命令,然后把焦点放在出现的窗口上

我有一个这样的bash脚本 #!/bin/sh firefox & Firefox窗口打开,但没有焦点。 我该怎么做才能自动获得焦点? 我可以使用一些X窗口工具/命令,但是如何获得Firefox的窗口ID? 窗口名称正在改变,显示的url,因此没有用。 编辑:我的窗口pipe理器是侏儒。

FIND命令不列出-mtime中定义的文件

我试图find所有.log文件在我定义的目录中超过10天,但是当我比较find命令的查找结果和目录中有什么没有被find命令拾取的特定文件。 任何帮助/方向将不胜感激。 我已经看遍了所有的Stackoverflowfind一个答案,但无法find一个符合我的问题。 今天的date/时间是:01/29/2015 14:33:00 我正在使用的命令是: find /var/log/app/*.log -type f -mtime +10 ! -name 'Verification1.log' 当我看着这个命令的文件列表,我没有看到列表中的这个文件: 文件名:file.log修改时间:1/18/2015 5:59 PM 如果-mtime在24小时内工作,为什么这个文件不能被我的文件列表中选中? 任何帮助/方向将不胜感激。 谢谢。

从subprocess更改父进程的目录

我创build了一个很酷的Python程序,可以帮助用户以交互方式导航到其他目录。 当他们到达那里,我想让他们击中input并退出程序,留在选定的目录。 然而,你总是最终在同一个目录,你开始在B / C只有subprocesspython的运行实际上改变目录和父进程的目录保持不变。

链接从bash中的谷歌页面中提取

我正在制作一个脚本,在bash中从一个谷歌页面的所有链接。 我用w3m工具和这个脚本得到google页面: #!/bin/bash # performs a google search using a word in input word=$1 touch .google if [ -z $word ] then echo "$word missing!" echo "Aborting…" exit fi a="www.google.com/search?q=" search=$a$word w3m -no-cookie $search > .google sleep 1 接下来,我必须从此页面获取所有网站。 我正在考虑采取所有以www.开头的stringwww. 并以/ echo `grep -wo "www[^/]*" .google`> .temp 这个问题是,我错过了许多不以www开头的链接,同时当有一个站点不以/结尾时,我冒险破坏了所有的东西。 有什么更好的办法可以得到这个回应的url?

如何在Linux环境中使用sudo环境variables?

我目前困惑以下: sudo echo $MYVAR 从我的.bashrc输出我的variables, 但 sudo ./test.sh 不,test.sh是以下可执行文件: #!/bin/sh echo $MYVAR 我正在运行Ubuntu 14.04。 有人能告诉我这里发生了什么事吗?

了解bash中的exec

在阅读了关于exec内build工程的解释之后,我明白它的基本function是replace当前进程而不分叉。 它似乎也被用于redirectI / O和在当前进程中closures文件描述符,这使我感到困惑。 这是一些无关的额外的事情exec吗? 在“取代现在的过程”的背景下能够理解吗? 而如何结合进程替代,如exec 3< <(my program) ?

在bash中从python函数收集返回值

我正在实现一个将调用python脚本的函数/方法的bash脚本。 我想收集这个函数的返回值到调用bash脚本中的局部variables。 try1.sh包含: #!/bin/sh RETURN_VALUE=`python -c 'import try3; try3.printTry()'` echo $RETURN_VALUE 现在python脚本: #!/usr/bin/python def printTry(): print 'Hello World' return 'true' 关于删除bash脚本: $./tr1.sh Hello World 没有“真”或在那个地方任何其他types的回声标准输出所需。 另外一件事,我希望能够做的是,我的avtual python代码将有大约20-30个函数返回我的软件状态机的各种状态值,我会从bash脚本中调用这些函数。 在bash脚本中,我必须将这些返回值存储在本地variables中,这些variables将在调用bash脚本中实现的状态机逻辑中进一步使用。 对于每个值,我会做python -c'import python_module; python_module.method_name',这将重新枚举一次又一次,我不想要的状态机的定义状态。 我想避免使整个python脚本只用于调用一个函数。 那可能吗? 在这里可以想到什么可能的解决scheme/build议/想法? 我将不胜感激。 为了阐明我的意图,任务是让python脚本replace一部分bash脚本以提高可读性。 bash脚本实际上非常大(约15000行),因此不能完全由一个单独的python脚本replace。 所以可以被改进的部分可以被python替代。 另外,我曾想过在下面的评论中用Victor的build议来replace整个bash脚本,但是在我的情况下这是不可行的。 因此,我将不得不将状态机分成bash和python,其中python将有一些必需的方法返回bash脚本所需的状态值。 问候,优素福Husainy。