带有macOS终端的If/else语句

带有macOS终端的If/else语句,macos,terminal,macos-sierra,Macos,Terminal,Macos Sierra,所以我对macOS终端很陌生,我想执行一个简单的命令,如果隐藏的mac文件夹被显示,隐藏它们,如果它们被隐藏,显示它们 我主要习惯于python,因此我的第一反应是: if defaults write com.apple.finder AppleShowAllFiles is NO: defaults write com.apple.finder AppleShowAllFiles YES else: defaults write com.apple.finder App

所以我对macOS终端很陌生,我想执行一个简单的命令,如果隐藏的mac文件夹被显示,隐藏它们,如果它们被隐藏,显示它们

我主要习惯于python,因此我的第一反应是:

if defaults write com.apple.finder AppleShowAllFiles is NO: 
    defaults write com.apple.finder AppleShowAllFiles YES 
else: 
    defaults write com.apple.finder AppleShowAllFiles NO

现在我很确定这是行不通的,但是如何在shell脚本中实现类似的功能呢?

您可以这样做:

#!/bin/bash

if [ '1' = $(defaults read com.apple.finder AppleShowAllFiles) ]; then
    echo "AppleShowAllFiles is enabled"
elif [ '0' = $(defaults read com.apple.finder AppleShowAllFiles) ];   then
    echo "AppleShowAllFiles is not enabled"
else
    echo "defaults returned some other value"
fi
或通过此选项将默认值的返回值指定给变量:

#!/bin/bash

defaultsReturn=$(defaults read com.apple.finder AppleShowAllFiles)

if [ '1' = "$defaultsReturn" ]; then
    echo "AppleShowAllFiles is enabled"
elif [ '0' = "$defaultsReturn" ]; then
    echo "AppleShowAllFiles is not enabled"
else
    echo "defaults returned some other value: $defaultsReturn"
fi

你可以这样做:

#!/bin/bash

if [ '1' = $(defaults read com.apple.finder AppleShowAllFiles) ]; then
    echo "AppleShowAllFiles is enabled"
elif [ '0' = $(defaults read com.apple.finder AppleShowAllFiles) ];   then
    echo "AppleShowAllFiles is not enabled"
else
    echo "defaults returned some other value"
fi
或通过此选项将默认值的返回值指定给变量:

#!/bin/bash

defaultsReturn=$(defaults read com.apple.finder AppleShowAllFiles)

if [ '1' = "$defaultsReturn" ]; then
    echo "AppleShowAllFiles is enabled"
elif [ '0' = "$defaultsReturn" ]; then
    echo "AppleShowAllFiles is not enabled"
else
    echo "defaults returned some other value: $defaultsReturn"
fi

在终端上键入if-then-else

if (( 1 == 1));then echo "hi"; fi;

在终端上键入if-then-else

if (( 1 == 1));then echo "hi"; fi;

我想我投票的时间很快就过去了。以上答案是对的,我想我投得很快。以上答案是正确的