Bash
是否可以定義一個 bash 腳本預設以互動方式執行?
我已經編寫了一些腳本並將它們儲存在我的
~/bin
文件夾中。我已經能夠通過在 shell 會話期間呼叫它們的標題來執行它們。但是,它們沒有以互動方式執行(我的意思是,我的~/.bashrc
別名沒有載入)。有沒有辦法將它們標記為預設以互動方式執行?或者我必須
source ~/.bashrc
在他們內部使用在那裡定義的任何別名?歡迎其他選擇!
如果您將
-i
選項添加到 hashbang(s),它將指定腳本以互動模式執行。#!/bin/bash -i
或者,您可以使用該選項呼叫腳本:
bash -i /path/to/script.sh
採購你
.bashrc
的不是一個好主意。您可以使用別名創建一個.bash_alias
文件,然後在腳本中獲取該文件並使用shopt
就像是:
shopt -s expand_aliases source ~/.bash_alias
Bash 手冊頁指出:
當 shell 不是互動式的時,別名不會被擴展,除非使用 shopt 設置了 expand_aliases shell 選項(請參閱下面的 SHELL BUILTIN COMMANDS 下對 shopt 的描述)。