Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LinuxBash命令错误地处理输出中的零。_Linux_Bash_X11 - Fatal编程技术网

LinuxBash命令错误地处理输出中的零。

LinuxBash命令错误地处理输出中的零。,linux,bash,x11,Linux,Bash,X11,我用的是Debian6-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-g5t0x

我用的是Debian6-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'
,截断了输出


如何才能接收正确的输出

tr
手册:

\NNN   character with octal value NNN (1 to 3 octal digits)

你给了四位数。第四个作为单独的符号处理(
'0'
),也会被替换。

tr
手册:

\NNN   character with octal value NNN (1 to 3 octal digits)

你给了四位数。第四个符号作为单独的符号(
'0'
)处理,也会被替换。

这也应该可以使用,而且更简洁一些:

tr '\000' '\n' </proc/$(pgrep x-session-manager)/environ | awk -F= '/XAUTHORITY/{print $2}'

tr'\000'\n'这应该也可以,而且更简洁一些:

tr '\000' '\n' </proc/$(pgrep x-session-manager)/environ | awk -F= '/XAUTHORITY/{print $2}'

tr'\000'\n'谢谢,我改为3并得到了正确的结果。我应该看看说明书的。谢谢,我改成了3,得到了正确的结果。我应该看看说明书的。