if [ -f "/usr/bin/wine" ]; then
export WINEARCH=win32
fi
我问这个问题是因为我在我的.bashrc中有很多别名,并且我在多个系统上使用相同的.bashrc(同步),但我不需要每个系统上的所有别名。
我将大部分别名放在if语句中,现在一切都很好,但它们占用了很多空间,每个别名需要3行加上它们之间的空白行(我喜欢让它们容易看到)。
我也会将此技术用于环境变量。
if [ -f "/usr/bin/wine" ]; then
export WINEARCH=win32
fi
我问这个问题是因为我在我的.bashrc中有很多别名,并且我在多个系统上使用相同的.bashrc(同步),但我不需要每个系统上的所有别名。
我将大部分别名放在if语句中,现在一切都很好,但它们占用了很多空间,每个别名需要3行加上它们之间的空白行(我喜欢让它们容易看到)。
我也会将此技术用于环境变量。
你会这样写:
if [ -f "/usr/bin/wine" ]; then export WINEARCH=win32; fi
请注意,这也可以按照@glennjackman的建议进行写作:
[ -f "/usr/bin/wine" ] && export WINEARCH=win32
[ -f "/usr/bin/wine" ] && export WINEARCH=win32 || echo "No file"
你还可以包含一个退出代码:
[ -f "/usr/bin/wine" ] && export WINEARCH=win32 || exit 1
然而,避免在或运算符之后包含多个命令,因为它们总是会被执行:
# This will always return an exit status of 1 even if the first condition is true
[ -f "/usr/bin/wine" ] && export WINEARCH=win32 || echo "No file" && exit 1
()来分组语句并详细说明操作:
在这种情况下,如果之前不存在文件/usr/bin/wine,则不会创建该文件,而不使用()则会创建它。
[ -f "/usr/bin/wine" ] && export WINEARCH=win32- glenn jackman