2017-04-13 61 views
1

這個問題是我的問題的分支whether there's anything wrong with having aliases on a production server在不使用bashrc或bash_profile或bash_aliases的終端會話中激活別名?

所以我試着用一些別名

#!/bin/sh 
echo "creating aliases..." 
alias f='clear;cd ..;ls;pwd' 
alias ff='clear;cd ../..;ls;pwd' 

沒過chmod +x al.sh創建一個shell腳本,並運行腳本./al.sh,但是雖然「創建別名...」得到了印結,沒有一個別名工作,因爲只有在腳本運行之前它們才顯然活躍。

那麼有沒有一種方法可以運行包含我想要的別名的腳本,只要終端會話處於活動狀態,這些別名就會保持活動狀態?基本思想是,不要爲使用相同服務器的同事造成問題。

+0

登錄時如何採購文件? – fedorqui

+2

'#!/ bin/sh'可能與'bash'不一樣......所以,如fedorqui建議的那樣,使用'source al.sh'或'。 al.sh',但刪除「source」忽略的shebang行。 – Sundeep

+0

shebang創建一個新的子shell,並在該子shell中設置別名。腳本結束時,子shell結束。而正確定義的別名已經消失了。您不能從子外殼內修改父外殼。 – ceving

回答

2

如果您想要爲您的會話存儲函數和別名,我發現在我登錄服務器時使用它們並找到它是非常有用的。

因此,只要將其放置地方,比如:

~/nav_alias_file.sh 

然後就是ssh後,荷蘭國際集團服務器類型:通過,爲Sundeep expressed in comments,你不需要認領的方式

source ~/nav_alias_file.sh 

注在那個文件中。

相關問題