exec腳本
A. Linux 命令:exec
命令簡介
exec 命令用於調用並執行指定的命令。
exec 命令通常用在 Shell 腳本程序中,可以調用其他的命令。如果在當前終端中使用命令,則當指定的命令執行完畢後會立即退出終端。
-c #在空環境中執行指定的命令
-l #在傳遞給command的第零個arg的開頭放置一個破折號
-a #Shell將name作為第零個參數傳遞給command
輸出指定信息
其它總結
B. 腳本怎麼做
如果你看到的腳本是一段語句,你可以把它復制下來,然後打開按鍵精靈,點〔增加〕會打開腳本編輯器,在編輯區域(右下空白的地方)的上面一點有〔普通〕和〔源文件〕兩個按鈕,點〔源文件〕,然後把你復制下來的語句粘貼到下面編輯區。
後設定好上面的〔腳本描述〕、〔啟動熱鍵〕、〔中止熱鍵〕和〔循環〕,然後點保存,好了以後退出來就可以在按鍵精靈的主界面看到你剛才新建的腳本了,在〔有效〕一欄打上勾就可以用了。
腳本簡單地說就是一條條的文字命令,這些文字命令是可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進製程序執行效率要稍低一些。
腳本(Script),就是含有bind和alias等命令的集合,你可以把這個集合存為一個獨立的文件然後在需要的時候執行,這樣就可以方便你在CS中的使用。腳本可以存為後綴名為.cfg的文件放在cstrike文件夾下,執行時在控制台輸入:exec(腳本文件名).cfg即可。
腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。 它的命名起源於一個腳本「screenplay」,每次運行都會使對話框逐字重復。早期的腳本語言經常被稱為批量處理語言或工作控制語言。
一個腳本通常是解釋執行而非編譯。腳本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程序員快速完成程序的編寫工作。而宏語言則可視為腳本語言的分支,兩者也有實質上的相同之處。
C. 什麼是視頻腳本
提起腳本,很多人會想到電影,其實對於短視頻來說,腳本也極其重要,它是短視頻製作的靈魂。但是對於很多初學者來說,腳本聽起來很專業也很難寫,覺得無從下手,今天我們就來聊一聊「腳本」的事。
腳本是什麼
腳本由來已久,一直是電影、戲劇創作中的重要一環。腳本可以說是故事的發展大綱,用以確定整個作品的發展方向和拍攝細節。
電影和戲劇因為時間長,工程量大,腳本一直被重視,但是由於短視頻通常只有幾分鍾,很多創作者便認為拍攝短視頻不需要腳本,其實這是一種誤解。
拍攝短視頻,尤其是有劇情的短視頻時,切記不要想到哪裡拍到哪裡,盲目的拍攝會造成素材的冗雜和浪費,短片質量也沒有保證。好的短視頻團隊例如日食記等都強調過腳本的重要性。
腳本一般分為拍攝提綱、分鏡頭腳本和文學腳本。它們分別適用於不同類型的短視頻。
拍攝提綱是拍攝一部影片或某些場面而制定的拍攝要點。它只對拍攝內容起各種提示作用,適用於一些不容易掌控和預測的內容,例如去采訪一個未知事件,我們可以選用制定拍攝提綱的辦法來防止漏掉拍攝要點。
分鏡頭腳本適用於故事性強的短視頻。分鏡頭腳本已經將文字轉換成了可以用鏡頭直接表現的畫面,通常分鏡頭腳本包括畫面內容、景別、攝法技巧、時間、機位、音效等。
分鏡頭腳本一定程度上已經是「可視化」影像了,它能幫助團隊最大程度保留創作者的初衷,因此對於想要表達一定故事情節的短視頻創作者不可或缺。
分鏡頭腳本示例
素材來源:網路
文學腳本不需要像分鏡頭腳本一樣那麼細致,適用於不需要劇情的短視頻創作,例如教學視頻、測評視頻等。在文學腳本中,只需要規定人物需要做的任務、說的台詞、所選用的鏡頭和整期節目的長短。
腳本的重要性
1、提高拍攝效率
短視頻腳本最重要的功能便在於提高團隊的效率,雖然寫腳本需要花費一定的時間,卻為之後的拍攝工作省了很多不必要的麻煩。
只有事先確定好拍攝的主題,故事,團隊才能有清晰的目標。只有明白要拍攝的角度、時長等要素,攝影師才能高效完成自己的拍攝任務。另外,腳本還保證了視頻中道具能提前備好,使拍攝能按時進行,極大地節省了團隊製作短視頻的時間。
2、保證短視頻主題明確
對於短視頻,尤其是有故事情節的短視頻來說,主題是否明確是影響短視頻質量的重要因素。
由於短視頻通常只有幾分鍾,視頻不能有多餘的鏡頭,所有片段都應該與主題相關。事先寫好的腳本便是短視頻主題明確的保證,創作者可以通過反復閱讀和修改腳本來刪除和增加鏡頭,以保證所有鏡頭都與主題相關,體現共同的思想。
3、降低溝通成本,方便團隊合作
腳本是一個團隊進行合作的依據,通過腳本,演員,攝影師、後期剪輯人員能最快速領會視頻創作者的意圖,准確完成任務,減少了團隊的溝通成本。
短視頻小白如何寫腳本
腳本是故事類短視頻創作的利器,卻也嚇跑了很多准備拍攝故事類短視頻的創作者。其實對於短視頻小白來說,寫腳本並不難上手,企鵝眼為大家總結了創作短視頻腳本的「三步走」。
1、明確主題
每一則故事類短視頻都一定有它想要表達的主題,可能是表達為夢想拼搏的不易,也可能是異地戀愛情的艱辛,我們必須先有要表達的主題才能開始短視頻創作,因為之後一切的工作都要圍繞這個主題展開。
2、搭建故事框架
有了基本的主題,接下來的工作就是把它一步步細化。首先是搭建故事框架,這一步要做的是把想要表達的主旨用一個能體現該主旨的故事展現出來。
在這一環節中,人物,場景,事件都要設定完成。例如主旨是表現異地戀的艱辛,那人物設定可能就是一對青年戀人因工作或學業必須分居兩地,事件則可能是女生在生病時無人照料、男生的關心不能及時送到等。在這一環節,我們可以設置很多這樣的情節和沖突來表現主題,最終形成一個故事。
世界那麼大,但我的世界缺你不可!
用一對青年戀人的故事表達異地戀帶來的問題
3、充盈細節
都說「細節決定成敗」,對於短視頻來說也是這樣。一個好的短視頻和一個差的短視頻可能有相同的故事梗概,它們真正的差距在於細節能否打動人心。如果說主旨是樹干,框架是樹枝,細節則是樹葉,我們可以通過樹葉來判斷樹的健康與否。
細節能加強觀眾的代入感,調動觀眾的情緒,人物也會更加豐滿。確定了需要表現的細節之後,便要考慮用什麼樣的鏡頭來呈現,這時候寫出來的就是非常具體的分鏡頭腳本了。
結語
對於短視頻創作團隊來說,腳本是提高效率,保證主題,節省溝通成本的重要工具。創作腳本則要先明確主題,再一步步細化,直至形成能保證視頻順利拍攝的詳細腳本。短視頻小白們不要再被腳本嚇到了,快行動起來,把自己的想法真正落實成故事和鏡頭吧!
D. exec、source以及bash的區別
在bash shell中,source、exec以及sh都可以用來執行shell script,但是它們的差別在哪裡呢?sh:父進程會fork一個子進程,shell script在子進程中執行source:在原進程中執行,不會fork子進程exec:在原進程中執行,但是同時會終止原進程 註:使用export會把父進程中的變數向子進程中繼承,但是反過來卻不行,在子進程中,不管環境如果改變,均不會影響父進程
下面用一個例子來講解
[plain] view plain
1.sh
A=B
echo "PID for 1.sh before exec/source/fork:$"
export A
echo "1.sh: $A is $A"
case $1 in
exec)
echo "using exec..."
exec ./2.sh ;;
source)
echo "using source..."
. ./2.sh ;;
*)
echo "using fork by default..."
./2.sh ;;
esac
echo "PID for 1.sh after exec/source/fork:$"
echo "1.sh: $A is $A"
[plain] view plain
2.sh
CODE:
echo "PID for 2.sh: $"
echo "2.sh get $A=$A from 1.sh"
A=C
export A
echo "2.sh: $A is $A"
下面在命令行中去執行
./1.sh fork
可以看到,1.sh是在父進程中執行,2.sh是在子進程中執行的,父進程的PID是5344,而子進程的是5345,當子進程執行完畢後,控制權返回到父進程。同時,在子進程改變環境變數A的值不會影響到父進程。
./1.sh source
由結果可知,1.sh和2.sh都是在同一進程中執行的,PID為5367
./1.sh exec
可知,兩個腳本都是在同一進程中執行,但是請注意,使用exec終止了原來的父進程,因此,可以看到
[plain] view plain
echo "PID for 1.sh after exec/source/fork:$"
echo "1.sh: $A is $A"
這兩個命令沒有執行
由這個例子,便大致可了解它們的區別了
E. 使用exec執行一個腳本後原有的shell就中斷了嗎
查一下英文說明,不會創建新的進程(No new process is created)。也就是說不會有新的pid
exec [-cl] [-a name] [command [arguments]]
If command is specified, it replaces the shell. No new process is created. The arguments become the arguments to command. .........
F. shell腳本中的 exec 命令
exec執行命令時,不會啟用新的shell進程。
source和 .也不會啟用新的shell進程,在當前shell中執行,設定的局部變數在執行完命令後仍然有效。
bash或sh執行時,會另起一個子shell進程,其繼承父shell進程的環境變數,其子shell進程的變數執行完後不影響父shell進程。
exec是用被執行的命令行替換掉當前的shell進程,且exec命令後的其他命令將不再執行。
例如在當前shell中執行 exec ls 表示執行ls這條命令來替換當前的shell ,即為執行完後會退出當前shell。
為了避免父shell被退出,一般將exec命令放到一個子shell腳本中,在父sehll中調用這個子shell腳本,調用處可以用bash xx.sh(xx.sh為存放exec命令的腳本),這樣會為xx.sh建立一個子shell去執行,當執行exec後該子shell進程就被替換成相應的exec的命令。
其中有一個例外:當exec命令對文件描述符操作的時候,就不會替換shell,而是操作完成後還會繼續執行後面的命令!
文件描述符
shell中描述符一共有12個
0 代表標准輸入
1 代表標准輸出
2 錯誤輸出
其他 3-9 都是空白描述符
其含義是: 復制標准輸出到3 ,錯誤輸出到 4 ,把 3 4 保存在bash.log 這個文件中。
其含義是:將bash.sh腳本執行的標准輸出和錯誤輸出追加重定向到 bash.log
如果exec 跟的是其他命令,則其他命令結束後,本shell也隨之停止
可以看到隨著 echo " hello oracle" 這條指令運行完本 整個腳本執行完畢,後面的 echo " hello db2" 沒有執行!
二、Linux shell 腳本中, $@ 和 $@ 分別是什麼意思?
$@ 表示所有腳本參數的內容
$# 表示返回所有腳本參數的個數
示例:編寫如下shell腳本,保存為test.sh
說明:給腳本提供了兩個參數,所以 @代表了參數的內容!
怎麼理解shell腳本中 exec "`dirname "$0"`/node""$0" "$@" ?
$0 #腳本自己的路徑
"`dirname "$0"`"/node #腳本目錄下的node程序的路徑
$@ #腳本被執行時的命令行參數
合起來就是:用腳本目錄下的node程序來解釋這個腳本本身
exec scala "$0" "$@" 是什麼意思
這是bash語法。
$0 #表示當前腳本的名字
$@ #表示當前腳本執行的所有參數
exec scala "$0" "$@" #表示用scala命令,帶參數,執行當前腳本
$0 是位置參數,表示腳本名稱
$1 表示腳本的第一個參數,依次類推直到 $9
exec用於執行命令、或腳本、或外部可執行程序,會新建一個shell去執行
綜上,這里exec sh "$0" 就是執行腳本本身
所以,就是一個循環過程,每隔兩秒列印一次 Hello
G. 腳本程序是什麼
1、腳本(script)是使用一種特定的描述性語言,依據一定的格式編寫的可執行文件,又稱作宏或批處理文件。腳本通常可以由應用程序臨時調用並執行。各類腳本目前被廣泛地應用於網頁設計中,因為腳本不僅可以減小網頁的規模和提高網頁瀏覽速度,而且可以豐富網頁的表現,如動畫、聲音等。舉個最常見的例子,當我們點擊網頁上的E-mail地址時能自動調用OutlookExpress或Foxmail這類郵件軟體,就是通過腳本功能來實現的。又如某些網頁的英文新聞內容旁會有一個三角符號,點擊它就可以聽到英文誦讀,這也是腳本在起作用。也正因為腳本的這些特點,往往被一些別有用心的人所利用。例如在腳本中加入一些破壞計算機系統的命令,這樣當用戶瀏覽網頁時,一旦調用這類腳本,便會使用戶的系統受到攻擊。所以用戶應根據對所訪問網頁的信任程度選擇安全等級,特別是對於那些本身內容就非法的網頁,更不要輕易允許使用腳本。通過「安全設置」對話框,選擇「腳本」選項下的各種設置就可以輕松實現對腳本的禁用和啟用。
2、動態程序一般有兩種實現方式,一是二進制方式,一是腳本方式。
二進制方式是先將我們編寫的程序進行編譯,變成機器可識別的指令代碼(如.exe文件),然後再執行。這種編譯好的程序我們只能執行、使用,卻看不到他的程序內容。
腳本簡單地說就是一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進製程序執行效率要稍低一些。
我們上面提到的各種動態語言,如ASP、PHP、CGI、JSP等,都是腳本語言。按目前的服務規則,虛擬主機網站只能採用腳本語言來實現。
3、腳本(Script)實際上就是程序,一般都是有應用程序提供的編程語言。應用程序包括瀏覽器(javascript、VBScript)、多媒體創作工具,應用程序的宏和創作系統的批處理語言也可以歸入腳本之類。腳本同我們平時使用的VB、C語言的區別主要是:腳本語法比較簡單,比較容易掌握;腳本與應用程序密切相關,所以包括相對應用程序自身的功能;腳本一般不具備通用性,所能處理的問題范圍有限。腳本就是源程序,就是代碼程序。
4、腳本(Script)是批處理文件的延伸,是一種純文本保存的程序,一般來說的計算機腳本程序是確定的一系列控制計算機進行運算操作動作的組合,在其中可以實現一定的邏輯分支等。腳本程序相對一般程序開發來說比較接近自然語言,可以不經編譯而是解釋執行,利於快速開發或一些輕量的控制。
現在的腳本語言是比較多的,一般的腳本語言的執行只同具體的解釋執行器有關,所以只要系統上有相應語言的解釋程序就可以做到跨平台。
腳本(Script),就是含有bind和alias等命令的集合,你可以把這個集合存為一個獨立的文件然後在需要的時候執行,這樣就可以方便你在CS中的使用。
腳本可以存為後綴名為.cfg的文件放在cstrike文件夾下,執行時在控制台輸入:exec(腳本文件名).cfg即可。比如將一個腳本存為buys.cfg文件,則在控制台中輸入:execbuys.cfg則可以實現我們所需要的功能。要實現一個命令只要把這一過程定義(alias)好,並且分配一個鍵位給這個命令,以後只要按分配好的鍵位,就可以實現這一過程。所有的腳本都是通過這一方法實現的。
H. 腳本是什麼意思
腳本英文為Script。實際上腳本就是程序,一般都是有應用程序提供的編程語言。應用程序包括瀏覽器(javascript、VBScript)、多媒體創作工具,應用程序的宏和創作系統的批處理語言也可以歸入腳本之類。腳本同我們平時使用的VB、C語言的區別主要是:
1、腳本語法比較簡單,比較容易掌握。
2、腳本與應用程序密切相關,所以包括相對應用程序自身的功能。
3、腳本一般不具備通用性,所能處理的問題范圍有限。
腳本通常可以由應用程序臨時調用並執行。各類腳本被廣泛地應用於網頁設計中,因為腳本不僅可以減小網頁的規模和提高網頁瀏覽速度,而且可以豐富網頁的表現,如動畫、聲音等。
腳本語言開發應用時一般提供或者暴露的就是源碼文件,因為腳本是解釋型運行時語言,只有運行時才能能生成應用,而且腳本基於的環境在運行時不生成可執行文件或者運行時文件。當然也有一些工具可以將我們的腳本文件,打包或者轉換成可執行文件,這樣我們再提供別人使用的時候可能脫離腳本的可執行環境,而是直接在系統上面直接運行。
腳本對環境有很強的依賴性,其一是藉助環境轉換成機器碼,其二就是藉助環境的內置的API。寫過PHP的都知道PHP裡面很多函數都是PHP環境中的,腳本運行大量資源來源自己集成環境的本身。
(8)exec腳本擴展閱讀
腳本可以存為後綴名為.cfg的文件放在cstrike文件夾下,執行時在控制台輸入:exec(腳本文件名).cfg即可。
比如將一個腳本存為buys.cfg文件,則在控制台中輸入:execbuys.cfg則可以實現我們所需要的功能。要實現一個命令只要把這一過程定義(alias)好,並且分配一個鍵位給這個命令,以後只要按分配好的鍵位,就可以實現這一過程。所有的腳本都是通過這一方法實現的。
I. 【exec】shell腳本中的 exec 命令
exec 是 bash 的內置命令
shell 的內件命令exec執行命令時,不啟用新的shell進程。
source 和 . 不啟用新的shell,在當前shell中執行,設定的局部變數在執行完命令後仍然有效。
bash 或 sh 或 shell script 執行時,另起一個子shell,其繼承父shell的環境變數,其子shelll的變數執行完後不影響父shell。
exec是用被執行的命令行替換掉當前的shell進程,且exec命令後的其他命令將不再執行。
例如在當前shell中執行 exec ls 表示執行ls這條命令來替換當前的shell ,即為執行完後會退出當前shell。
為了避免這個結果的影響,一般將exec命令放到一個shell腳本中,用主腳本調用這個腳本,調用處可以用bash xx.sh(xx.sh為存放exec命令的腳本),這樣會為xx.sh建立一個子shell去執行,當執行exec後該子腳本進程就被替換成相應的exec的命令。
其中有一個例外:當exec命令對文件描述符操作的時候,就不會替換shell,而是操作完成後還會繼續執行後面的命令!
在shell腳本中使用exec命令,根據操作的對象不同會有不同的行為
文件描述符
shell中描述符一共有12個
0 代表標准輸入
1 代表標准輸出
2 錯誤輸出
其他 3-9 都是空白描述符
# exec3>&1 4>&2 1>> bash.log 2>&1
其含義是: 復制標准輸出到3 ,錯誤輸出到 4 ,把 3 4 保存在bash.log 這個文件中。
# ./bash.sh >> bash.log 2>&1
其含義是:將bash.sh腳本執行的標准輸出和錯誤輸出追加重定向到 bash.log
如果exec 跟的是其他命令,則其他命令結束後,本shell也隨之停止
# cat test_exec.sh
###################
#!/bin/bash
#
echo "Hello mysql"
exec echo "Hello oracle"
echo "Hello sqlserver"
####################
可以看到隨著 echo " hello oracle" 這條指令運行完本 整個腳本執行完畢,後面的 echo " hello db2" 沒有執行!
Linux shell 腳本中, $@ 和$# 分別是什麼意思?
$@ 表示所有腳本參數的內容
$# 表示返回所有腳本參數的個數
示例:編寫如下shell腳本,保存為test.sh
###############
#!/bin/sh
echo "number:$#"
echo "argume:$@"
###############
執行腳本:
./test.sh first_arg second_arg
說明:給腳本提供了兩個參數,所以$#輸出的結果是2,$@代表了參數的內容!
怎麼理解shell腳本中 exec "`dirname "$0"`/node""$0" "$@" ?
$0 # 腳本自己的路徑
"`dirname "$0"`"/node # 腳本目錄下的node程序的路徑
$@ # 腳本被執行時的命令行參數
合起來就是:用腳本目錄下的node程序來解釋這個腳本本身
exec scala "$0" "$@"是什麼意思
這是bash語法。
$0 表示當前腳本的名字
$@ 表示當前腳本執行的所有參數
exec scala "$0" "$@" 表示用scala命令,帶參數,執行當前腳本
exec sh "$0 在這個文件里,exec sh $0是什麼意思?
############
#!/bin/sh
echo "Hello!"
sleep 2
execsh "$0"
#############
$0 是位置參數,表示腳本名稱
$1 表示腳本的第一個參數,依次類推直到$9
exec用於執行命令、或腳本、或外部可執行程序,會新建一個shell去執行
綜上,這里exec sh "$0" 就是執行腳本本身
所以,就是一個循環過程,每隔兩秒列印一次 Hello
#############
#!/bin/sh
echo "Hello!"
sleep 2
exec "$0"
#############
J. 腳本怎麼寫
1、分析游戲需要的功能是根據需要寫代碼。
2、判斷用戶點擊,進入腳本前放點toast或者dialog提示框,放完這些之後將腳本初始化了,進入功能代碼。
3、由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進製程序執行效率要稍低一些。
腳本語言:
一般的腳本語言的執行只同具體的解釋執行器有關,所以只要系統上有相應語言的解釋程序就可以做到跨平台。含有bind和alias等命令的集合,這個集合存為一個獨立的文件然後在需要的時候執行,這樣就方便在CS中的使用。
腳本可以存為後綴名為cfg的文件放在cstrike文件夾下,執行時在控制台輸入exec腳本文件名cfg即可。比如將一個腳本存為 buyscfg文件,則在控制台中輸入execbuyscfg則可以實現所需要的功能。要實現一個命令只要把這一過程定義好,並且分配一個鍵位給這個命令。