如何将bash变量分配给pathX(如果存在)或pathY(如果存在),例如:
export EDITOR=/usr/bin/nano || /bin/nano
答案 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变量。