簡體   English   中英

OSX Bash Shell腳本無法運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM