相关疑难解决方法(0)

何时使用命令的 XPG* 版本?

我偶尔做旧的Solaris机器其默认的版本上工作grep的非POSIX兼容的。这会导致我的 rc 文件出现问题,因为grep机器上的默认设置不支持我需要的选项。

这是我工作地点的一台机器,我不是管理员;所以我不能只安装我认为合适的更新/更好版本的命令。但是,我注意到该机器确实有合适的XPG版本grepat /usr/xpg4/bin/grep

显然,我可以在我的 rc 文件中解决这个问题(对于 Solaris):

alias grep='/usr/xpg4/bin/grep'
Run Code Online (Sandbox Code Playgroud)

但是那些不需要的机器呢?我的目标是为每个 shell 拥有一个单独的 rc 文件,我可以将其放入任何类 Unix 系统并使其正常工作。

这让我想到...

  1. 有没有我不想使用命令的XPG版本的情况?
    • 如果有,什么时候?
  2. 难道我不能盲目地在所有机器上的 rc 文件/usr/xpg4/bin/的开头添加$PATH并放弃将单个命令别名到它们的 XPG* 版本吗?
    • 或者这会导致某些命令出现问题吗?
  3. 这种情况是否/usr/xpg4/bin/只存在于“必要”的机器上?
    • 我问是因为我注意到/usr/xpg4/bin/我的 Ubuntu 机器上不存在。

总而言之,这是一个好主意吗?

if [ -d "/usr/xpg4/bin" ]; then
  #Place XPG directory at beginning of path to always use XPG version of commands
  export PATH="/usr/xpg4/bin:$PATH"
fi
Run Code Online (Sandbox Code Playgroud)

如果没有,为什么不呢?

compatibility path posix command

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

标签 统计

command ×1

compatibility ×1

path ×1

posix ×1