小编Squ*_*rel的帖子

为什么/ bin/sh与/ bin/bash的行为不同,即使一个指向另一个?

当我在我的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: …

linux bash shell sh

64
推荐指数
4
解决办法
7225
查看次数

如何使用Java读取Android属性

我在终端中使用'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代码中访问此信息.

有任何想法吗?

java shell android getproperties adb

9
推荐指数
4
解决办法
8572
查看次数

如何在不使用 KRB5CCNAME 的情况下在客户端上设置 Kerberos default_ccache_name 属性?

根据 MIT Kerberos 文档,默认凭据缓存名称确定如下:

默认缓存名称

默认凭据缓存名称由以下各项确定,按优先级降序排列:

1. The KRB5CCNAME environment variable. For example, KRB5CCNAME=DIR:/mydir/.
2. The default_ccache_name profile variable in [libdefaults].
3. The hardcoded default, DEFCCNAME.
Run Code Online (Sandbox Code Playgroud)

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)

unix linux aix kerberos

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

ls -lh如何取整文件大小?

我正在将显示的舍入后的文件大小值ls -lh与原始大小(以字节为单位)进行比较(如所示ls -l)。我很难弄清楚它使用哪种算法从字节转换。

我的假设是,它将单位K,M,G解释为

  • (a)10 ^ 3、10 ^ 6、10 ^ 9或
  • (b)1024、1024 ^ 2、1024 ^ 3。

一方面,我有一个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)

unix linux ls

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

标签 统计

linux ×3

shell ×2

unix ×2

adb ×1

aix ×1

android ×1

bash ×1

getproperties ×1

java ×1

kerberos ×1

ls ×1

sh ×1