在 Linux Bash 脚本中从 MAC 与 PC 生成和测试变量

在 Linux Bash 脚本中从 MAC 与 PC 生成和测试变量

我支持两个组。我有一个脚本,我想将其保留为一个。我在测试函数方面遇到了问题:

convtype=./Sample*/
if [[ -n convtype ]]; then

对于某些用户来说,它可以正常运行,但对于其他用户来说则不然。我注意到的一件事是,对于从 PC 运行它的人来说,根据目录中的内容,它会返回一个值或 Null 字符串,因此我的 if 语句将计算为 true 或 false。对于 MAC 用户,它始终计算为字符串,因此始终为 true。

如果我将这两行改为:

 if [[ -d Sample*/ ]]; then

它适用于 MAC 用户,但不适用于 PC 用户。

我正在寻找一种方法来判断脚本是从哪种类型的机器运行的,或者另一种方法来生成/测试无论如何都能工作的变量。非常感谢您的建议。

答案1

如果目标是测试目录是否存在并且两个系统都在 bash 中运行,那么您可以执行此工作解决方案这个工作示例

if ls /path/to/your/files* 1> /dev/null 2>&1; then
    echo "files do exist"
else
    echo "files do not exist"
fi

相关内容