小编Ant*_*ong的帖子

Bash 脚本:测试空目录

我想测试一个目录是否不包含任何文件。如果是这样,我将跳过一些处理。

我尝试了以下方法:

if [ ./* == "./*" ]; then
    echo "No new file"
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

line 1: [: too many arguments
Run Code Online (Sandbox Code Playgroud)

有解决方案/替代方案吗?

bash

150
推荐指数
10
解决办法
19万
查看次数

如何通过 Vagrant 文件配置将“仅主机适配器”添加到 VirtualBox 机器?

很多答案只有 Vagrant 文件配置的适用版本 1。例如

config.vm.network :hostonly, :adapter => 2
Run Code Online (Sandbox Code Playgroud)

新的public network不支持此功能。例如这里的这一行

config.vm.network "public_network", bridge: 'vboxnet0'
Run Code Online (Sandbox Code Playgroud)

会抛出错误,因为vboxnet0不是像en0. 这是一个屏幕截图:

在此处输入图片说明

我也试过

config.vm.provider "virtualbox" do |vb|
  vb.customize ["modifyvm", :id, "--hostonlyadapter2", "vboxnet0"] 
Run Code Online (Sandbox Code Playgroud)

但是对虚拟机没有影响。

如何创建这样的新界面?

在此处输入图片说明

我在用

  • Mac OS X 10.10.1
  • 虚拟盒 4.3.20
  • 流浪者 1.6.5

virtualbox vagrant

23
推荐指数
1
解决办法
3万
查看次数

即使重新安装 VirtualBox,也无法在 VirtualBox 中启动 Linux VM,并在 macOS 上出现“未安装内核驱动程序 (rc=-1908)”错误

我正在尝试在 2016 年 MacBook Pro 15" 上运行的 macOS High Sierra (10.13.6 (17G65)) 上从 VirtualBox (5.2.18 r124319 (Qt5.6.3)) 启动一个 Ubuntu(64 位)Linux VM

最近使用我的 Time Machine Backup 恢复了有问题的 MacBook Pro。我在原始 MacBook Pro 上启用了 FileVault。

这是错误对话框的图像:

在此处输入图片说明

正文是:

未安装内核驱动程序 (rc=-1908)

确保内核模块已成功加载。

其中: suplibOsInit 内容: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - 未安装支持驱动程序。在 linux 上,打开返回 ENOENT。

我在设置 Linux VM 时启用了磁盘级加密。

这是 VM 的更多详细信息

在此处输入图片说明

这是我从 system.log 中获取的

Sep 26 10:15:44 konga-mbp-loaner com.apple.xpc.launchd[1] (org.virtualbox.startup[95]): Service exited with abnormal code: 1
Run Code Online (Sandbox Code Playgroud)

在 Linux VM 启动失败我尝试了什么:

  • 我尝试重新安装 VirtualBox,但安装失败。
  • 重启机器再重新安装试试,同样失败。

在此处输入图片说明

virtualbox

17
推荐指数
2
解决办法
6万
查看次数

脚本编写:在 XML 文件的标记中提取值最简单的方法是什么?

我想读取 pom.xml(Maven 的“项目对象模型”)并提取版本信息。下面是一个例子:

<?xml version="1.0" encoding="UTF-8"?><project 
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany</groupId>
    <artifactId>project-parent</artifactId>
    <name>project-parent</name>
    <version>1.0.74-SNAPSHOT</version>
    <dependencies>
        <dependency>
        <groupId>com.sybase.jconnect</groupId>
        <artifactId>jconnect</artifactId>
        <version>6.05-26023</version>
    </dependency>
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>1.5.2</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jdmk</groupId>
        <artifactId>jmxtools</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>2.4</version>
    </dependency>       
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

如何从上面提取版本“1.0.74-SNAPSHOT”?

希望能够使用简单的 bash 脚本 sed 或 awk 来做到这一点。否则首选简单的python。

编辑

  1. 约束

    linux box 在公司环境中,所以我只能使用已经安装的工具(不是说我不能请求诸如 xml2 之类的实用程序,但我必须经历很多繁文缛节)。一些解决方案非常好(已经学习了一些新技巧),但由于环境限制,它们可能不适用

  2. 更新的 xml 列表

    我在原始列表中添加了依赖项标签。这将显示一些 hacky 解决方案在这种情况下可能不起作用

  3. 发行版

    我使用的发行版是 RHEL4

linux unix xml bash python

14
推荐指数
4
解决办法
7万
查看次数

如何在 Windows Server 2016 上安装 Microsoft Edge?

在IE浏览器中,我可以在MS上搜索并找到以下站点:

在此处输入图片说明

但是,当我单击“立即尝试”时,会收到以下提示:

在此处输入图片说明

然后这条消息:

在此处输入图片说明

我还检查了“添加和删除程序”,但我无法找到 Edge。

有没有一种简单的方法可以将 Edge 安装到 Window Server 2016?

windows-server-2016

12
推荐指数
2
解决办法
7万
查看次数

如何找出一个进程已经运行了多长时间?

是否可以使用wmicpowershell找出进程运行了多长时间?

如果没有,是否还有其他方法可以从 Windows 操作系统获取此信息?

windows wmic windows-server-2012

11
推荐指数
1
解决办法
3万
查看次数

在 bash 脚本中运行 python oneliner

以下是我想作为 bash 脚本的一部分运行的 python one-liner

python -c "from xml.dom.minidom import parse;dom = parse('/path/to/pom.xml');print [n.firstChild.data for n in dom.childNodes[0].childNodes if n.firstChild and n.tagName == 'version']"
Run Code Online (Sandbox Code Playgroud)

(pom.xml 是一个 maven POM xml 文件)

我想将命令的结果分配给变量MVN_VER

这是我的基本脚本:

WS="/path/to"
PY_GET_MVN_VERS="from xml.dom.minidom import parse;dom = parse(\'${WS}/pom.xml\')\;print [n.firstChild.data for n in dom.childNodes[0].childNodes if n.firstChild and n.tagName == \'version\']"

funcion test_mvn {

        MVN_VER=`python -c \"${PY_GET_MVN_VERS}\"`
        echo ${MVN_VERS}
}

test_mvn
Run Code Online (Sandbox Code Playgroud)

但是它无法运行。如果我使用 +x 选项运行脚本,我会看到:

++ python -c '"from' xml.dom.minidom import 'parse;dom' = 'parse(\'\''/path/to/pom.xml\'\'')\;print' '[n.firstChild.data' for n in 'dom.childNodes[0].childNodes' if n.firstChild …
Run Code Online (Sandbox Code Playgroud)

bash

9
推荐指数
1
解决办法
2万
查看次数

激活 Python venv 时如何不更改 shell 提示符?

我创建了一个像这样的 venv:

python3 -m venv .venv
Run Code Online (Sandbox Code Playgroud)

当我激活它时,shell 提示符会改变。

antkong@konga-mbp ~/dev/my-project (git-branch-name)
$ source .venv/bin/activate
(.venv) konga-mbp:my-project antkong$
Run Code Online (Sandbox Code Playgroud)

如何保持提示相同?

python3

7
推荐指数
1
解决办法
2792
查看次数

WinXP 补丁后的 cygwin bash 路径完成性能问题。有什么建议吗?

操作系统是WinXP SP3。

这是我的 cygwin dll 信息:

   Cygwin DLL version info:
       DLL version: 1.7.5
       DLL epoch: 19
       DLL old termios: 5
       DLL malloc env: 28
       Cygwin conv: 181
       API major: 0
       API minor: 225
       Shared data: 5
       DLL identifier: cygwin1
       Mount registry: 3
       Cygwin registry name: Cygwin
       Program options name: Program Options
       Installations name: Installations
       Cygdrive default prefix:
       Build date:
       Shared id: cygwin1S5
Run Code Online (Sandbox Code Playgroud)

自最新一轮的 Windows 补丁以来,路径完成速度已显着减慢(提示可能需要一两秒钟才能恢复)。

应用的补丁是

KB980373
KB981716/MSACCESS
KB981716/ACCWIZ
Run Code Online (Sandbox Code Playgroud)

任何人有任何想法/建议来解决性能问题?

cygwin windows-xp

5
推荐指数
1
解决办法
779
查看次数

为什么 VirtualBox 为两个虚拟机实例分配相同的 IP 地址?两者都使用仅主机网络

VB版本: 4.2.16

来宾操作系统版本: ubuntu 12.4 LTS

主机操作系统版本: OSX 10.8.4

我创建了两个虚拟机。每个 vm 都有两个网络适配器:NAT 和 Host-only。

这是主机专用适配器的定义方式:

在此处输入图片说明

这些是来自 VirtualBox 的两个实例的屏幕截图。

第一个虚拟机

第二个虚拟机

似乎两台机器的接口 virbr0 的 IP 都是 192.168.122.1。

正如@kenster 所建议的,VB 没有创建 virbr0 接口。我不知道它来自哪里。

显然 eth0 来自 NAT 适配器。两个虚拟机都具有相同的 eth0 IP。这是其中一台虚拟机的屏幕截图:

在此处输入图片说明

我应该期待来自第二个 Host-only 适配器的 eth1 吗?如果是这样,为什么不创建它?

VB 首选项中的仅主机 dhcp 设置:

在此处输入图片说明

那么,为什么 VB 为两个盒子分配两次相同的 IP?

networking virtualbox virtual-machine

5
推荐指数
1
解决办法
2万
查看次数