将bash变量分配给X或Y.

时间:2017-09-08 12:25:21

标签: linux bash ubuntu

如何将bash变量分配给pathX(如果存在)或pathY(如果存在),例如:

export EDITOR=/usr/bin/nano || /bin/nano

3 个答案:

答案 0 :(得分:3)

您可以使用if。如果要检查文件是否可执行,请使用-x

if [ -x /usr/bin/nano ]; then
   export EDITOR=/usr/bin/nano
else
   export EDITOR=/bin/nano
fi

或者,如果您希望无论何种类型都能使用它,请使用-e

if [ -e /usr/bin/nano ]

答案 1 :(得分:2)

循环中的简单条件将执行:

export EDITOR=
for choice in "/usr/bin/nano" "/bin/nano" ; do
    [[ -x "${choice}" ]] && export EDITOR="${choice}" && break
done
echo "Editor selected is '${EDITOR}'" # debug to see what was chosen

这将选择列表中存在且可执行的第一个,并且不依赖nano实际存在于您的路径中(尽管,说实话,它可能 应该 )。

答案 2 :(得分:1)

export EDITOR=$(whereis -b nano | awk '{ print $2 }')

运行whereis命令找到nano的二进制文件,然后使用结果(通过awk解析)来设置EDITOR变量。