我使用的是Debian 6-64。 当我正在运行命令时
echo -n `cat /proc/$(ps -o pid --no-header -C x-session-manager | tr -d ' ')/environ 2>/dev/null | tr '\0000' '\n'|grep XA|cut -d '=' -f 2`
为当前登录的用户获取XAUTHORITY,我希望它在我的实际xauthority路径返回时,即:
/var/run/gdm3/auth-for-alex-g5t0xM
但它实际返回的是
/var/run/gdm3/auth-for-alex-g5t
缺少部分0xM
。
显然它以某种方式0
为'\0'
,截断输出。
如何才能获得正确的输出?
答案 0 :(得分:5)
tr
手册:
\NNN character with octal value NNN (1 to 3 octal digits)
你给了四位数。第四个作为单独的符号('0'
)处理,也被替换。
答案 1 :(得分:0)
这也应该有效,并且更简洁:
tr '\000' '\n' </proc/$(pgrep x-session-manager)/environ | awk -F= '/XAUTHORITY/{print $2}'