2012-08-02 24 views
0

我有一個問題,我一直在嘗試解決一段時間。我想了解從命令行啓動腳本並使其可執行,然後從Finder運行腳本的區別。在OSX中執行腳本時有什麼不同?

因爲這是我所經歷的;

我有一個簡單的腳本調用垃圾文件包含此命令:

trash ~/Downloads/* 

當我從它按預期工作的終端上運行;但是如果我雙擊shell腳本取景我看到這一點:

/Users/xx/Desktop/trash-files: line 1: trash: command not found 

我希望有人能告訴我爲什麼如預期

回答

3

trash不是一個標準的命令,在OS X.這是行不通它是在〜/ .profile還是類似文件中定義的東西?如果是這樣,那麼它們不會運行在非登錄shell上,比如那些爲了運行腳本而創建的shell。

+0

是的,這是我的個人資料中定義的東西,有沒有辦法來加載您的配置文件,當您雙擊它在Finder中...... – Jankeesvw 2012-08-05 13:59:00

+1

非登錄shell運行的〜/ .bashrc,而不是〜/ .profile文件。你可以添加'if [-f〜/ .profile];然後 。 〜/ .profile中; fi「給你的〜/ .bashrc(警告:這意味着它有時會重複運行,所以如果你做了像PATH那樣的事情,它會變得很長。或者,您可以將該命令放在腳本的開頭......但我真正推薦的是編寫腳本,因此它完全不依賴於您的.profile設置。 – 2012-08-05 20:12:35

0

有一個叫

.Trash 

文件夾名稱前面的「點」在您的個人文件夾位置的文件夾使得而在取景器尋找它,它隱藏。你將不得不使用終端執行以下命令:

cd ~/ 
ls -la 

這將更改目錄登錄用戶的主文件夾的電流,那麼第二個命令將列出文件和顯示隱藏文件。您可以運行:

rm .Trash/* 

這將刪除碼頭上垃圾箱內的所有內容。 因此,從/ Applications文件夾打開TextEdit,轉到「格式」並將其設置爲「純文本」。粘貼在下面的兩行中。

#!/bin/sh 
rm ~/.Trash/* 

將文件保存爲 「emptyTrash.sh」(取消選中使用TXT擴展名)。將它保存到桌面或任何你想要的地方。然後打開終端,cd(更改目錄),可在文件是並運行此命令,以使腳本可執行:

chmod +x emptyTrash.sh 

然後你就可以在腳本執行由CD(改變目錄)腳本路徑,並運行:

./emptyTrash.sh 

就是這樣。

1

如果你使用自制軟件可以運行

brew install trash 

這將安裝必要的腳本有你期待的方式trash指揮工作。

+1

我剛剛遇到了同樣的問題,這個伎倆。如果你使用OS X並開發你可能*應該*使用Homebrew。 – 2015-11-20 19:32:22

相關問題