我想检查某个目录是否总是出现在环境变量中的其他目录之后。
列表项由冒号分隔,与 PATH 变量一样。
这不仅适用于 bash,还适用于一些不同的 shell。
问题是,我不确定如何使用标准的 unix 实用程序检查列表中项目的顺序。
什么是起点?
编辑:
一个例子是
$LIST=/test:/bin/test:/etc/test:/nan/:/var
Run Code Online (Sandbox Code Playgroud)
例如,我想测试任何包含 test 一词的目录路径在列表中优先于没有的目录。
我想要做的足够小,我可以对目录进行硬编码,因此不需要动态解决方案。
我正在尝试使用 pkgsrc 系统在 NetBSD 6.1.5 上安装 coreutils。
这是 6.1.5 的默认安装。所做的唯一更改是安装 zsh 并将其设置为我的 root 用户和任何本地用户的默认 shell。
与 pkgsrc 方式一样,我切换到包含我要安装的软件包的 pkgsrc heirachy 目录。在这种情况下,它是/usr/pkgsrc/sysutils/coreutils
当我以 root 身份进入这个目录时,我输入
制作
然后得到一个错误:
configure: error: you should not run configure as root (set
FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
See `config.log' for more details
*** Error code 1
Run Code Online (Sandbox Code Playgroud)
这在使用 pkgsrc 作为 root 时并不典型,并且似乎特定于 gnu 包,因为我没有在 pkgsrc 中使用任何其他包时遇到过这种情况。
当我在同一目录中以普通用户身份进行 make 时,我无权写入/usr/pkgsrc下的任何目录,并且由于一堆权限被拒绝错误而使 make 失败。例如:
sh: Cannot create configure.override: permission denied.
Run Code Online (Sandbox Code Playgroud)
将包目录复制到本地用户有写权限的地方,编译似乎不符合使用 pkgsrc。
用户是否必须是特殊组的一部分才能使用 pkgsrc?