如果是then else脚本我该怎么做呢

时间:2016-04-12 16:19:34

标签: macos bash if-statement

我一直在尝试制作 if then else脚本但每次都错了。

我在这方面是全新的,也许我已经采取了比我可以咀嚼更多的东西,但我正在努力创建一个在启动时运行的脚本

如果文件存在/Users/Bob/Library/Safari/Bookmarks.plist

然后什么都不做

如果文件不存在(我假设这是“其他”),则将文件从/ Library / Application \ Support / Bookmarks.plist移动​​到/Users/Bob/Library/Safari/Bookmarks.plist

非常感谢任何反馈,非常感谢。

2 个答案:

答案 0 :(得分:0)

DST="/Users/Bob/Library/Safari/Bookmarks.plist"
SRC="/Library/Application\ Support/Bookmarks.plist"
if [ ! -f "$DST" ]; then
  mv "$SRC" "$DST"
fi

这将查看目的地是否存在。如果没有,它将移动文件。实际上应该有额外的错误检查,我不确定移动是最好的方法,因为不再是“原始”文件。

答案 1 :(得分:0)

你所描述的内容可以用伪代码编写:

if file_exists("/Users/Bob/Library/Safari/Bookmarks.plist")
   exit

if not file_exists("/Users/Bob/Library/Safari/Bookmarks.plist")
   move("/Library/Application\ Support/Bookmarks.plist", "/Users/Bob/Library/Safari/Bookmarks.plist")

正如你所看到的,第一个"分支"并没有真正使用,因为你无论如何都打算忽略这种情况。

但是如果我们假设,在第一种情况下,你实际上想要做一些事情,比如打印一条好消息,你就可以这样写:

if file_exists("/Users/Bob/Library/Safari/Bookmarks.plist")
    print("Nothing to do!")
else
   move("/Library/Application\ Support/Bookmarks.plist", "/Users/Bob/Library/Safari/Bookmarks.plist")

正如您所看到的,在此示例中," else" part相当于说"如果不是file_exists(...)"。您也可以使用"而不是":

来撤销订单
if not file_exists("/Users/Bob/Library/Safari/Bookmarks.plist")
    move("/Library/Application\ Support/Bookmarks.plist", "/Users/Bob/Library/Safari/Bookmarks.plist")
else
   print("Nothing to do!")