[英]OSX Bash Shell Script Does Not Run
我有一個非常基本的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"
將其do shell script "$HOME/git_credentials.sh"
並將其保存為應用程序,然后將其放入登錄項中。
問題是您的Automator的Shell腳本未連接到STDIN(即您的鍵盤)。 它可以運行shell腳本,但是由於沒有終端,因此無法傳遞輸入。
您需要做的是運行“自動化”操作:“ 詢問文本”以獲取輸入。
我發現我要做的是詢問文本 ,然后設置變量的值 。 我為每個要輸入的變量執行此操作。
一旦獲得所需的所有變量,就可以為每個變量運行“ 獲取變量的值”。 這會將變量放入$*
以便shell腳本加載。
現在,您可以使用Pass Input 作為參數執行Automator操作Run Shell Script 。 您可以將它們稱為$1
, $2
等。
我建議嘗試使用一個簡單的腳本來嘗試一下,然后看看它是否有效。 問題在於整個過程可能都在子shell中執行,因此一旦automator操作結束,您將丟失已設置的變量的值。 我只是對Automator缺乏足夠的經驗,無法確切了解其工作原理。
我懷疑您的腳本當前不可執行。
嘗試通過運行以下chmod +x /blabla/git_credentials.sh
修復此問題: chmod +x /blabla/git_credentials.sh
要么
chmod 755 /blabla/git_credentials.sh
還是您的腳本頂部缺少#!/bin/bash
? 還是這只是一部分?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.