[英]What is the acceptable way to source custom bash scripts?
我正在開始在我的 MBP 上自動化一些文檔功能的過程,並且想學習一些很好的方法來獲取自定義腳本以用於 bash。 我(在去年)拿起了一個 MBP 並一直在學習 package 管理以及 shell 調用是如何發生的。 我有一個來自 brew 的 bash 的 5.x 版本,最初使用 .bash_profile 啟動了我的 config.dot 文件。 我已經使用 function 構建了一個腳本,它將觸及新創建的工作目錄中的 readme.md,它可以幫助我在創建新目錄時自動創建關聯的自述文件 - 如下所示:
function mkr() {
touch $1/readme.md
if [ $? -eq 0 ]
then
echo "Successfully created file" # stdout
# exit 0 # success but it kills the shell?
else
echo "Could not create file" >&2 # out to stderr
# exit 1 # they killed kinney
fi
}
######CLI to invoke the above script named .mk_readme.sh
$ mkdir ~/path/to/new/dir
$ mkr !!:1
我的擔憂是:
source./.mk_readme.sh
獲取當前在 .bash_profile 中的文件。 我閱讀了一篇通過 .bashrc 解決此問題的文章。 這樣做的后果是什么?最好的做法是將source.bashrc
放入 .bash_profile 中以發生這種情況,或者直接從 ~ 中保留需要從 .bash_profile 進行采購的目錄。我可能已經開始考慮答案,因為它可能在於 Mac 或 Posix/Unix/Linux 機器上的負載。 我是 Mac 新手,在雲和裸機機器上都涉足了 Ubuntu Debian 和 Fedora/RHEL/CentOS - 我只是想了解更多關於這台筆記本電腦的信息,它的成本比我現在的車還高:)謝謝你時間提前。
反饋,每個問題:
- 是否有更有效的方法來處理簡單的任務以加快上述工作流程?
腳本很簡單。 考慮在touch
之前測試該文件是否已經存在,是否存在碰撞時間戳或執行其他一次性命令的副作用。 [ -f $1/readme.md ] && return
- 在獲取文件時,最好只獲取單個腳本...
這兩個選項都是合理的,bash 將以有效的方式處理這兩個選項。 設置將包含在“PATH”中的共享文件夾可以更輕松地進行更改、添加腳本等。我認為它更有效(從管理的角度來看),而不是在 bash 啟動期間采購單個文件。
- 我正在使用 source./.mk_readme.sh 獲取當前位於 .bash_profile 中的文件。
雖然向每個 bash 啟動添加單個 function 定義很小,但這通常不會很好地擴展。 從表面上看,這個 function 將被偶爾使用(每個文件夾一次)。 我建議添加對腳本的引用。 如果只需要交互式會話,您可以在 '~/.bashrc' 中使用別名。 很容易掉入滑坡,會出現額外的 3 個字母命令。
- 誰能給我一個快速熨燙的最佳方法來處理
不幸的是,我沒有從 VS 運行 bash 腳本的經驗。 以下是基於谷歌/堆棧溢出:
* Alternative, instead of running window 'pause', use 'read', to wait for standard input.
* Modify the launcher to pass env var "EXIT_PAUSE=1", add '[ "$PAUSE" ] || trap 'echo 'echo "exit $?" ; pause' EXIT' to the top your script
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.