小编Den*_*nis的帖子

grep一个模式并输出一行不匹配的部分

我知道可以用-v标志反转grep输出.有没有办法只输出匹配线的非匹配部分?我问因为我想使用grep的返回码(sed不会有).这是我所得到的:

tags=$(grep "^$PAT" >/dev/null 2>&1)
[ "$?" -eq 0 ] && echo $tags 
Run Code Online (Sandbox Code Playgroud)

unix bash shell grep

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

为什么使用return语句的双重&符号的Ruby表达式会导致语法错误

def foo
  true && return false
end

def bar
  true and return false
end
Run Code Online (Sandbox Code Playgroud)

foo方法导致语法错误.bar没有.为什么?

假设我想用return语句评估单行(类似于某个常用的shell/bash表达式),这是推荐的方法吗,还是有更推荐的方法?

ruby expression operators syntax-error operator-precedence

4
推荐指数
1
解决办法
442
查看次数

我可以在bash shell中对变量执行for循环吗?

我正在学习shell,我希望能够遍历一些变量.我似乎找不到任何人做过这个的地方,所以我不确定它是否可能.

基本上我只想通过对每个变量使用相同的sed命令来省去自己的麻烦.但是代码显然不起作用.我的问题是,是否可以循环变量,如果不是,我应该怎么做呢?

title="$(echo string1)"
artist="$(echo string2)"
album="$(echo string3)"

for arg in title artist album do
    $arg="$(echo "$arg" | sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g')"
done
Run Code Online (Sandbox Code Playgroud)

这是错误:

line 12: syntax error near unexpected token `$arg="$(echo "$arg" | sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g')"'
Run Code Online (Sandbox Code Playgroud)

linux variables shell

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

Java Logger未在Netbeans中记录输出

我正在Netbeans中使用Maven开始一个Java项目.我写了一些代码来使用Logger类进行日志记录.但是,日志记录似乎不起作用.在我的程序开始时,我运行:

Logger.getLogger(ProjectMainClass.class.getName()).setLevel(LOG_LEVEL);
Logger.getLogger(ProjectMainClass.class.getName()).log(LOG_LEVEL, "Hello Logger");
Run Code Online (Sandbox Code Playgroud)

第二行从不将我的消息输出到Netbeans的输出屏幕. System.out.print语句确实显示在输出中.

我觉得我需要设置一些配置选项.我一直在搜索,但我无法弄明白(过去我总是使用System.out和调试器进行调试,但我认为记录器功能更强大(更令人困惑)).

java logging netbeans maven

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

PHP的基本位置

我最近决定将PHP合并到我的网站中,但我之前从未使用过它,所以我不熟悉这些功能......

我的问题是我在每个PHP页面上使用include()方法作为我的页眉和页脚,如下所示:

<?php include('../php/header.php'); ?>
Run Code Online (Sandbox Code Playgroud)

这会从/ public_html目录导航到我网站根目录下的/ php目录.为了考虑文件可能位于的不同子目录级别,我在每个PHP页面的顶部添加:

<?php
/* Path prefix so relative links work correctly */ 
$path = "../";
?>
Run Code Online (Sandbox Code Playgroud)

和../可以用../../替换为另一个子目录向下等文件,在页眉和页脚文件中,链接的开头如下:

<a href="<?php echo($path); ?>index.php" title="Home">Home</a>
Run Code Online (Sandbox Code Playgroud)

一切都运行正常......直到我尝试使用wordpress,它位于我网站的子目录中.Wordpress使用动态页面,因此有时页面位于低于其他页面的子目录中,并且链接将无法使用此方法.在我的旧网站设计中,我使用标记设置我网站的root/public_html目录的所有链接引用.但是,PHP不受此标记的影响.我需要的是一个方法来设置博客上我的include()方法的/ public_html目录中的链接引用.

有这样的方法还是有更好的方法来做我正在做的事情?

php wordpress

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

如何在服务中获取WifiManager对象?

我正在为Android编写一个应用程序,它会生成一个定期检查wifi状态并根据某些条件更改它的服务.我的问题是,每当我尝试创建一个WifiManager对象来检查wifi的状态(并且可能控制它)时,它就会给我一个未初始化的对象.这是代码:

public class WifiCheckerService extends Service {

    // Service code and run() method

    private void checkWifi() {
        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        System.out.println(wifi.getConnectionInfo());
        // Rest of code
    }
}
Run Code Online (Sandbox Code Playgroud)

这是代码到达此代码时日志中的行.

02-18 05:22:59.274: INFO/System.out(1170): SSID: <none>, BSSID: <none>, MAC: <none>, Supplicant state: UNINITIALIZED, RSSI: -200, Link speed: -1, Net ID: -1
Run Code Online (Sandbox Code Playgroud)

显然我没有得到系统WifiManager对象.我知道这与我在一个线程服务中的事实有关,但我仍然无法理解这个概念,并且对于它为什么不起作用以及如何解决它的一些解释将非常感激.

(在一种不相关的说明中,我认为解释也可以解释为什么我不能Toast.makeText(getBaseContext(), "Checking Wifi...", Toast.LENGTH_SHORT).show();在服务中使用该行)

android android-service android-wifi

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