如何基于几个终端命令为Mac创建通用(脚本)文件


20

通过在终端窗口中一一键入,我有几个用于故障排除的终端命令。

这些命令要求输入用户密码。

我正在寻找一种使用这些命令创建通用(脚本)文件的方法。我希望能够通过在Mac上双击或将文件拖到“终端”图标上来运行该文件。

我以前从未做过这样的事情。有什么办法可以创建这样的脚本吗?请指教。


您是否要问您要在输入用户密码的情况下运行脚本?
艾伦

@Allan我想运行一个文件而不是多个命令。在不让用户至少输入一次密码的情况下运行它会很好,但是如果我没有记错的话,很可能是不可能的。
0lesya

除非您需要执行需要管理员执行的操作,否则这绝对是可能的-请参阅下面的答案
Cullub

Answers:


30

简短答案

一个.command脚本应该做的伎俩


一步步

  1. 打开TextEdit并创建一个新文件
  2. 通过单击格式>将纯文本转换为纯文本
  3. 添加您的命令,每行一个。例如,您可以这样做:
    #! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder

  4. chmod u+x ~/Desktop/myCommandScript.command在您的终端中运行,~/Desktop/myCommandScript.command脚本的路径在哪里。这将授予终端运行文件的权限。

  5. 你完成了!双击要运行的文件。拖动终端图标也将起作用。

笔记:

  • 如果您需要执行需要root(admin)访问权限的操作,则可以在命令前面加上sudo。脚本运行时,您必须输入密码(并成为管理员)
  • 如果最终用户不是管理员,但是您需要执行需要root访问权限的操作,则可以使用su someAdminName,它将执行命令someAdminName(您需要输入密码)。

您还可以在此处的堆栈溢出中查看更多信息。


有没有一种方法可以使命令文件不注销?我想要一个命令文件,该文件使用预定义的路径变量打开终端。
罗伊'18

8

脚本只是一系列命令,因此您可以将其放入bash脚本中。

#!/bin/bash

command 1
command 2
command 3

现在,这一切都取决于它们的命令类型以及它们是否需要用户干预。

但是,例如,如果要获取诊断信息,则可以使用一个脚本来执行

#!/bin/bash

# Get SMART status of main drive
diskutil info disk0 | grep -i smart

# Get the model of the machine in question
system_profiler SPHardwareDataType | grep -i Identifier

这些仅是示例。请记住,任何生成的输出将被发送到控制台(屏幕)。但是,您可以通过>> /path/to/outputfile.txt在每个命令的末尾追加来将输出重定向到文件,以便您拥有一个文件,文件运行完毕后就可以对其进行解析。

您可以命名文件diagnostics.sh并将其放在您喜欢的任何位置。只需通过发出命令chmod +x diagnostics.sh并使其执行来确保它可执行,./diagnostics.sh或者将其保存到桌面上,双击运行它即可

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.