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则可以实现所需要的功能。要实现一个命令只要把这一过程定义好,并且分配一个键位给这个命令。