1

我有一个非常基本的 shell 脚本,应该在用户登录时运行。为此,我遵循了本主题第一个答案中的 Automator 指南:在登录 mac 时运行脚本

但不知何故,什么也没发生。我还尝试使用脚本编辑器创建一个应用程序,该编辑器以do shell script /blabla/git_credentials.sh拒绝权限响应。

我看不出这里有什么问题。

哦,这是脚本:

echo ""
echo "Setup Git Credentials"
echo "*********************"
echo "Please enter your first name: "
read fname
echo "Please enter your last name: "
read lname
echo "Please enter your mail address: "
read email
git config --global --remove-section user
git config --global user.name "$fname $lname"
git config --global user.email $email
echo "Credentials set." 

编辑:我刚刚发现脚本正在登录时运行,但它既不打开终端也不等待我的用户输入,每次启动后我只有一个空的 Git 配置。我使用脚本编辑器“实现”了这一点,do shell script "$HOME/git_credentials.sh"并将其保存为应用程序,然后将其放入登录项中。

4

3 回答 3

3

问题是您的 Automator 的 shell 脚本没有连接到 STDIN(即您的键盘)。它可能会运行 shell 脚本,但由于没有终端,因此无法将其传递给输入。

您需要做的是运行 Automator 操作:请求文本以获取您的输入。

我发现我必须做的是Ask for Text,然后Set the Value of the Variable。我对我想要作为输入的每个变量执行此操作。

一旦我得到我想要的所有变量,我就为每个变量运行Get the Value of the Variable。这会将变量放入$*shell 脚本以拉起。

现在,您可以执行 Automator 操作Run Shell Script with Pass Input as arguments。您可以将它们称为$1,$2等。

我建议用一个简单的脚本试试这个,看看它是否有效。问题是整个事情可能在一个子shell中执行,所以一旦自动化操作结束,你就会丢失你设置的变量的值。我根本没有足够的 Automator 经验来确切地知道它是如何工作的。

于 2013-09-17T16:33:59.073 回答
1

我怀疑您的脚本当前不可执行。

尝试通过运行解决此问题: chmod +x /blabla/git_credentials.sh

或者

chmod 755 /blabla/git_credentials.sh

于 2013-09-17T14:28:06.397 回答
0

或者您#!/bin/bash在脚本的顶部丢失了?或者这只是其中的一部分?

于 2013-09-17T14:30:48.633 回答