我有一个非常基本的shell脚本应该在用户登录时运行。为实现这一目标,我从本主题的第一个答案开始遵循Automator指南:Running script upon login 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"
实现了这个'并将其保存为应用程序,然后将其放入登录项中。
答案 0 :(得分:3)
问题是你的Automator的shell脚本没有连接到STDIN(即你的键盘)。它可以运行shell脚本,但由于没有终端,所以没有办法传递它。
您需要做的是运行Automator操作: 询问文字 以获取您的输入。
我发现我必须做的是 询问文字 ,然后 设置变量的值 。我为每个我想要的变量做这个。
获得所需的所有变量后,我会为每个变量运行 获取变量的值 。这会将变量放入$*
以供shell脚本使用。
现在,您可以使用Pass Input 作为参数 执行Automator操作 运行Shell脚本 。您可以将其称为$1
,$2
等
我建议用一个简单的脚本尝试这个,然后查看它是否有效。问题是整个事件可能在子shell中执行,因此一旦automator操作结束,您将丢失已设置的变量的值。我对Automator没有足够的经验来确切知道它是如何工作的。
答案 1 :(得分:1)
我怀疑你的脚本目前不可执行。
尝试通过运行来解决此问题:
chmod +x /blabla/git_credentials.sh
或
chmod 755 /blabla/git_credentials.sh
答案 2 :(得分:0)
或者您在脚本顶部缺少#!/bin/bash
?或者这只是它的一部分?