他们, 目前我正在为工作写一个newbie-bash文件。唯一的目的是通过一键显示/隐藏隐藏文件。我的最后一个剧本很久以前,我在这里研究了正确的解决方案并制作了这个剧本:
#!/bin/bash
if defaults write com.apple.finder AppleShowAllFiles 0
then
defaults write com.apple.finder AppleShowAllFiles 1
else
defaults write com.apple.finder AppleShowAllFiles 0
fi
在此之后无法正常工作我尝试了
#!/bin/bash
if defaults write com.apple.finder AppleShowAllFiles 0
then
defaults write com.apple.finder AppleShowAllFiles 1
elif defaults write com.apple.finder AppleShowAllFiles 1
then
defaults write com.apple.finder AppleShowAllFiles 0
fi
嗯 - 两者都有部分工作。因此,如果第一个参数为真(AppleShowAllFiles 0),它会将值设置为1.但它不能反过来:Else-condition不会做任何事情。如果AppleShowallFiles 0为false(意味着AppleShowAllFiles 1),它就不会做任何事情。 为什么会这样,我做错了什么以及如何解决?
我非常感谢任何有用的答案,非常感谢!
答案 0 :(得分:1)
您没有获取AppleShowAllFiles
的当前值;您将其值设置为0,当成功时,将其设置为1.使用
if [[ $(defaults read com.apple.finder AppleShowAllFiles) = 0 ]]; then
defaults write com.apple.finder AppleShowAllFiles 1
else
defaults write com.apple.finder AppleShowAllFiles 0
fi