為什麼linux 的 source命令在linux的指令碼中沒

時間 2021-12-24 08:30:05

1樓:匿名使用者

source命令用法:

source filename

作用:在當前bash環境下讀取並執行filename中的命令。

注:該命令通常用命令「.」來替代。

如:source .bash_rc 與 . .bash_rc 是等效的。

注意:source命令與shell scripts的區別是,

source在當前bash環境下執行命令,而scripts是啟動一個子shell來執行命令。這樣如果把設定環境變數(或alias等等)的命令寫進scripts中,就只會影響子shell,無法改變當前的bash,所以通過檔案(命令列)設定環境變數時,要用source 命令。

在bash中可以使用source 可執行檔案 來執行一個可執行檔案,功能和./一樣

例: source 1.sh

./1.sh

不過要更改1.sh的許可權

在shell指令碼中也可以使用 ,例如

#/bin/bash

#filename:1.sh

echo ok!

source 1.sh

這時執行1.sh時就會無限呼叫1.sh 輸出為ok!無限迴圈,不過同樣要更改1.s**件的許可權

估計您source命令不好用的原因就是可執行許可權沒開,使用

chmod 777 1.sh 更改1.s**件的許可權

就可以使用了

2樓:

使用 source執行你的指令碼

linux shell程式設計指令碼第一行為什麼一定要用"#!/bin/sh",不寫行不行?這個"!"是什麼意思?

3樓:匿名使用者

#!/bin/sh為指定你執行指令碼的shell型別,是bash,ksh還是其它,一般系統有固定的shell,不定這行也能執行,只是為了規範寫上的。還有比如你執行的是perl程式,就可以寫#!

/bin/perl.

4樓:匿名使用者

#! /bin/sh 是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面跟的是解釋此指令碼的shell的路徑

如果沒有宣告,則指令碼將在預設的shell中執行,預設shell是由使用者所在的系統定義為執行shell指令碼的shell.如果指令碼被編寫為在kornshell ksh中執行,而預設執行shell指令碼的為c shell csh,則指令碼在執行過程中很可能失敗。

5樓:使者

表示用來解釋此指令碼的程式是"/bin/sh"

不寫的話應該不會出錯。

但是考慮到移植問題,還是寫上比較好。

6樓:匿名使用者

這個是告訴系統,應該呼叫哪個東西來執行他。

是特殊格式。

linux的shell程式設計中#!/bin/sh和$bash是什麼意思?

7樓:晰美酒窩

#! /bin/sh 是指此指令碼使用,/bin/sh來解釋執行,#!是特殊的表示符,其後面根的是此解釋此指令碼的shell的路徑。

補充:程式設計是編寫程式的中文簡稱,就是讓計算機為解決某個問題而使用某種程式設計語言編寫程式**,並最終得到相應結果的過程。

為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算機之間交流的過程就是程式設計。

程式設計:設計具備邏輯流動作用的一種「可控體系」【注:程式設計不一定是針對計算機程式而言的,針對具備邏輯計算力的體系,都可以算程式設計】

8樓:

指定作業系統的shell型別

linux下的source命令的基本功能

9樓:射手座的

source命令用法:source filename

作用:在當前bash環境下讀取並執行filename中的命令。

注:該命令通常用命令".」來替代。

使用範例:

1、source filename

2、. filename #(中間有空格)

source命令(從 c shell 而來)是bash shell的內建命令。點命令,就是個點符號,(從bourne shell而來)是source的另一名稱。

同樣的,當前指令碼中配置的變數也將作為指令碼的環境,source(或點)命令通常用於重新執行剛修改的初始化文件,如 .bash_profile 和 .profile 等等。

例如,假如在登入後對 .bash_profile 中的 editer 和 term 變數做了修改,則能夠用source命令重新執行 .bash_profile 中的命令而不用登出並重新登入。

比如在一個指令碼里export $kkk=111 ,假如用./a.sh執行該指令碼,執行完畢後,執行 echo $kkk,發現沒有值,假如用source來執行 ,然後再echo,就會發現kkk=111。

因為呼叫./a.sh來執行shell是在一個子shell裡執行的,所以執行後,結構並沒有反應到父shell裡,但是source不同他就是在本shell中執行的,所以能夠看到結果。

source命令(從 c shell 而來)是bash shell的內建命令。點命令,就是一個點符號,(從bourne shell而來)是source的另一名稱。

這兩個命令都以一個指令碼為引數,該指令碼將作為當前shell的環境執行,即不會啟動一個新的子程序。所有在指令碼中設定的變數將成為當前shell的一部分。

linux的shell程式設計中#!/bin/sh和$bash是什麼意思

10樓:改憐雙

#! /bin/sh 是指此指令碼使用/bin/sh來解釋執行,#!是特殊的表示符,其後面根的是此解釋此指令碼的shell的路徑。

$bash $表示系統提示符,$ 表示此使用者為普通使用者,超級使用者的提示符是#。

bash是shell的一種,是linux下最常用的一種shell。

$bash的意思是執行一個子shell,此子shell為bash。

要注意,在每個指令碼的開頭都使用"#!",這意味著告訴你的系統這個檔案的執行需要指定一個解 釋器.#!

實際上是一個2位元組[1]的魔法數字,這是指定一個檔案型別的特殊標記, 換句話說, 在 這種情況下,指的就是一個可執行的指令碼(鍵入man magic來獲得關於這個迷人話題的更多詳細 資訊).在#!之後接著是一個路徑名.

這個路徑名指定了一個解釋指令碼中命令的程式,這個程式可 以是shell,程式語言或者是任意一個通用程式.這個指定的程式從頭開始解釋並且執行指令碼中 的命令(從#!行下邊的一行開始),忽略註釋.

[2] 如: 1 #!/bin/sh 2 #!

/bin/bash 3 #!/usr/bin/perl 4 #!/usr/bin/tcl 5 #!

/bin/sed -f 6 #!/usr/awk -f

注意: #! 後邊給出的路徑名必須是正確的,否則將會出現一個錯誤訊息,通常是 "command not found",這將是你執行這個指令碼時所得到的唯一結果.

如果在指令碼的裡邊還有一個#!行,那麼bash將把它認為是一個一般的註釋行.

linux輸入ifconfig命令為什麼不行啊

zero正則 linux發行版的時候會預設需要新增使用者ifconfig命令許可權,一般用root賬戶進去或者給組使用者新增許可權,具體操作如下 1 建議這個操作在root下進行,用root賬戶進去,輸入su root命令。2 如果只想在本次開機過程中臨時性的新增修改,下次開機就無效的話,可以輸入e...

為什麼要學習Linux,為什麼要學習linux

為了討生活 有些工作需要用到linux,比如linux開發,linux系統管理員,需要用到linux的各種工作。節約成本也是這種情況,為了躲避微軟的win授權費。還有黑客喜歡用linux作為工具。為了好玩 各種geek玩法,黑客,桌面控。為了學習it知識 滿足求知慾。深入學習作業系統架構和原理知識等...

Linux有什麼功能,Linux作業系統的功能有哪些?

北京迅為 開發板新增語音合成和繼電器功能並設定開機自啟動。 開源,我們用的xp要1700多,而linux免費 linux作業系統的功能有哪些?linux主要是幹什麼用的? 景田不是百歲山 主要是用於後端伺服器作業系統 linux是一種自由和開放原始碼的類unix作業系統。它能執行主要的unix工具軟...