shell中的`和$()、eval、crontab

一、`和$()的区别

反引号本身就对\进行了转义,保留了本身意思,如果我们想在反引号中起到\的特殊意义,我们必须使用2个\来进行表示。

反引号中: \\ = \

$()中:\ = \

注意:反引号是老的用法,$()是新的用法,不管是在学习测试中,还是在实际工作中,$()的用法都是被推荐的。

二、eval命令

eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令;如果命令中含有变量的间接引用,则保证间接引用的语义。

例如有一个文件test1,里面的内容是"this is a test".当把test1赋值给test2时,(即test2=$test1)。echo $test2的结果是:test1。使用eval命令(eval $test2)结果是:this is a test。

shell中的eval不能获得函数处理结果; eval 嵌套无意义,shell 中 eval 将后面的eval命令简单当作命令字符串执行,失去了嵌套作用,嵌套被命令替换取代。

三、crontab命令

crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格,用户把需要执行的命令序列放到crontab文件中以获得执行。
    每个用户都可以有自己的crontab文件,/var/spool/cron下的crontab文件不可以直接创建或者直接修改,该crontab文件是通过crontab -e命令创建的。
    在crontab文件中如何输入需要执行的命令和时间,该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
    每个域之间使用空格或者制表符分隔。格式如下: 
           minute hour day-of-month month-of-year day-of-week commands 
             合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday)

除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字。"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

-l 在标准输出上显示当前的crontab。

-r 删除当前的crontab文件。

-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。

当结束编辑离开时,编辑后的文件将自动安装。

时间: 2024-10-21 03:05:30

shell中的`和$()、eval、crontab的相关文章

shell 中的 envl 及 crontab 命令

envl eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令:如果命令中含有变量的间接引用,则保证间接引用的语义.也就是说,eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令.因此,eval命令适用于那些一次扫描无法实现其功能的变量. eval 执行以下两个步骤 第一次,执行变量替换,类似与C语言的宏替代 第二次,执行替换后的命令串 栗子: 1.  有一个名为test的文件,其内容为“Please move on !”,定义一个内容是cat test

shell中的变量与eval(转)

原文链接:http://www.361way.com/shell-eval-variable/4957.html shell 中经常会用到变量的嵌套的情况.比如,单个或多个变量的值作为变量名,再对该变量名取$获取其内部的变量的情况,这种脚本写起来很难搞,还好有eval 命令方便我们处理这种情况.便于理解,先来一个示例: #!/bin/bash a='my' b='site' my_site='my site www.361way.com' echo a_b is "$a"_"

shell中的eval学习与应用

一.bash命令处理的12个步骤: 1.将命令行分成由固定元字符集分隔的记号: SPACE, TAB, NEWLINE, ; , (, ),<, >, |,& 记号类型包括单词,关键字,I/O重定向符和分号.2.检测每个命令的第一个记号,查看是否为不带引号或反斜线的关键字. 如果是一个开放的关键字,如if和其他控制结构起始字符串,function,{或(,则命令实际上为一复合命令.shell在内部对复合命令进行处理,读取下一个命令,并重复这一过程.如果关键字不是复合命令起始字符串(如t

shell中eval的使用问题

转载:http://www.blogjava.net/jasmine214--love/archive/2010/11/26/339106.html 本文将会讲解一些linux中命令的使用与技巧希望对新手给予帮助 一 eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令.该命令适用于那些一次扫描无法实现其功能的变量.该命令对变量进行两次扫描.这些需要进行两次扫描的变量有时被称为复杂变量.不过这些变量本身并不复杂. 1 eval命令也可以用于回显简单变量,不一定是复杂变量 [[email

二、Shell中的变量

变量是任何程序或脚本的重要组成部分.变量为程序或脚本访问内存中的可被修改的一块数据提供了简单的方式.Linux Shell中的变量可以被指定为任意的数据类型.Shell中有两种变量的类型:系统变量(环境变量)和用户自定义的变量(本地变量或Shell变量). 环境变量:作用域为当前shell进程及其子进程:环境变量一般均为大写.常用的环境变量有: 系统变量 含义 BASH_VERSION 保存bash实例的版本 DISPLAY 设置X display名字 EDITOR 设置默认的文本编辑器 HIS

shell 中的常用技巧

本文收集了一堆的shell脚本技巧,主要方便自己查阅,技巧出自脚本之家中的博客,自己也增加了实现目的的其他方法,方便以后自己查阅: 0. shell 调试 代码如下: sh -x somefile.sh 在somefile.sh 文件里加上set+x set-x1. 用 && || 简化if else 代码如下: gzip -t a.tar.gz if [[ 0 == $? ]]; then     echo "good zip" else     echo "

【shell】使用 /dev/null crontab

1.linux组成kernel.shell.工具程序有sh.bash 一个例子 !#/bin/bash echo '' 执行之前chmod +x 执行./ 2.一个小窍门 cp /dev/null /var/log/apache2/access.log 利用/dev/null来晴空apache2中的日志文件 注释:把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚

【转】Bash Shell中命令行选项/参数处理

原文网址:http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html 0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: 如下一个命令行: ./test.sh -f config.conf -v --prefix=/home 我们称-f为选项,它需要一个参数,即config.conf, -v 也是一个选项,但它不需要参数. --prefix我们称之为一个长选项,即选项本身多于一个字符

Shell脚本之:EVAL and EXEC command

由于工作上的需要,花了点时间,研究了一下eval和exec这两个shell内建特殊的命令.因为用的不是很多,所以还是有一点比较隐晦的.. 1.eval 该命令是bashshell中内建的一个命令,相比其他的命令来说还是有一点的难度.该命令后面所跟的内容都认为是参数,但是会两次扫描其参数,第一次扫描会将参数中的变量进行替换,第二次扫描会将后面的参数当作一个shell中的命令组合来执行命令.其常用的情况是对变量的处理下面看几个例子: 案例1:直接组合命令[[email protected] shel