当我在我的shell中调查这个问题的答案时,我注意到,即使/bin/sh指向/bin/bash我的系统,这两个命令的行为也不同.首先,输出
ls -lh /bin/sh
Run Code Online (Sandbox Code Playgroud)
是:
lrwxrwxrwx 1 root root 4 Apr 22 2013 /bin/sh -> bash*
Run Code Online (Sandbox Code Playgroud)
但是,通过以下方式调用以下命令/bin/sh:
/bin/sh -c "script.sh 2> >( grep -v FILTER 2>&1 )"
Run Code Online (Sandbox Code Playgroud)
返回此错误:
/bin/sh: -c: line 0: syntax error near unexpected token '>'
/bin/sh: -c: line 0: 'script.sh 2> >( grep -v FILTER 2>&1 )'
Run Code Online (Sandbox Code Playgroud)
通过/bin/bash以下命令运行相同的命令:
/bin/bash -c "script.sh 2> >( grep -v FILTER 2>&1 )"
Run Code Online (Sandbox Code Playgroud)
执行成功,这是输出:
This should be on stderr
Run Code Online (Sandbox Code Playgroud)
供参考,以下是以下内容script.sh: …
我在终端中使用'adb shell getprop'.我可以在Android JAVA中使用哪些接口来获取相同的信息?
我尝试过几样的事情:
Properties sysProps = System.getProperties();
Run Code Online (Sandbox Code Playgroud)
但我不认为这些是我想要的相同属性?具体来说,我想找到将返回类似于以下内容的值:
adb shell getprop | grep dolby
Run Code Online (Sandbox Code Playgroud)
shell'grep dolby'命令返回:
[audio.dolby.ds2.enabled]: [true]
[dolby.audio.sink.info]: [headset]
[dolby.ds.dialogenhancer.state]: [on]
[dolby.ds.graphiceq.state]: [off]
[dolby.ds.hpvirtualizer.state]: [off]
[dolby.ds.intelligenteq.preset]: [Off]
[dolby.ds.intelligenteq.state]: [off]
[dolby.ds.platform]: [qcom]
[dolby.ds.profile.name]: [Movie]
[dolby.ds.spkvirtualizer.state]: [off]
[dolby.ds.state]: [off]
[dolby.ds.volumeleveler.state]: [on]
Run Code Online (Sandbox Code Playgroud)
但我想在Android JAVA代码中访问此信息.
有任何想法吗?
根据 MIT Kerberos 文档,默认凭据缓存名称确定如下:
默认缓存名称
默认凭据缓存名称由以下各项确定,按优先级降序排列:
Run Code Online (Sandbox Code Playgroud)1. The KRB5CCNAME environment variable. For example, KRB5CCNAME=DIR:/mydir/. 2. The default_ccache_name profile variable in [libdefaults]. 3. The hardcoded default, DEFCCNAME.
http://web.mit.edu/kerberos/krb5-devel/doc/basic/ccache_def.html
我想知道是否有办法在客户端定义 default_ccache_name 配置文件变量(#2)?我尝试在我的一台客户端机器上的 /etc/krb5.conf 中按如下方式定义它:
[libdefaults]
...
default_ccache_name = FILE:/var/krb5/security/creds/krb5cc_%{uid}
...
Run Code Online (Sandbox Code Playgroud)
但是客户端二进制文件(klist / kinit / kdestroy 等)似乎完全忽略了这一点:
[~]$ klist
klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_34125)
Run Code Online (Sandbox Code Playgroud)
我正在运行 1.9.4 版:
[~]$ klist -V
Kerberos 5 version 1.9.4
Run Code Online (Sandbox Code Playgroud) 我正在将显示的舍入后的文件大小值ls -lh与原始大小(以字节为单位)进行比较(如所示ls -l)。我很难弄清楚它使用哪种算法从字节转换。
我的假设是,它将单位K,M,G解释为
一方面,我有一个ls -l报告为2052字节的文件,并ls -lh四舍五入为2.1K:
$ ls -l usercount.c
-rw-r--r-- 1 squirrel lsf 2052 May 13 15:41 usercount.c
$ ls -lh usercount.c
-rw-r--r-- 1 squirrel lsf 2.1K May 13 15:41 usercount.c
Run Code Online (Sandbox Code Playgroud)
这似乎支持假设(a),因为2052/1000 = 2.052会四舍五入到2.1K,而2052/1024 = 2.0039会四舍五入到小数点后一位显然会显示为2.0K。
另一方面,我还有另一个文件ls -l报告为7223字节,ls -lh显示为7.1K:
$ ls -l traverse.readdir_r.c
-rw-r--r-- 1 squirrel lsf 7223 Jul 21 2014 traverse.readdir_r.c
$ ls …Run Code Online (Sandbox Code Playgroud)