shell 中的 eval 及 crontab 命令】的更多相关文章

eval eval会对后面的命令进行两遍扫描,如果第一遍扫描后,命令是个普通命令,则执行此命令:如果命令中含有变量的间接引用,则保证间接引用的语义.也就是说,eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令.因此,eval命令适用于那些一次扫描无法实现其功能的变量. eval 执行以下两个步骤 第一次,执行变量替换,类似与C语言的宏替代 第二次,执行替换后的命令串 栗子: 1.  有一个名为test的文件,其内容为“Please move on !”,定义一个内容是cat test…
#!/bin/bash echo "Switch Directory : /home/pktgen-2.9.0" dir="/home/pktgen-2.9.0" cd $dir cmd="./pktgen_20180410 -c f -n 4 --proc-type auto --socket-mem 512 -b 01:00.1 --file-prefix pg1 -- -T -m 3.0 -s 0:voip-udp.pcap:2 -d 10000 -…
eval语法 eval arg1 arg2 ... eval的作用就是将后面的参数arg1 arg2等等当成一个pipeline,然后重新执行shell处理pipeline的流程(有关pipeline,参看http://www.cnblogs.com/chaoguo1234/p/5724321.html) 假设有如下脚本语句: var="ls | more" $var 上面的程序本意是列举当前目录的文件,然后使用more展示结果,但是实际执行情况会报错: ls:can't access…
参考: http://www.cnblogs.com/tuzkee/p/3755230.html https://segmentfault.com/q/1010000000156870 http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script 避免使用which,可用下列命令实现: $ command -v foo >/dev/null 2>&1 || { echo &g…
shift命令用于对参数的向左移动,通常用于在不知道传入参数个数的情况下依次遍历每个参数,然后进行相应的处理(常见与Linux中各种程序的启动脚本).在扫描处理脚本程序的参数时,经常要用到shift命令. shift命令每执行一次,参数序列顺次左移一个位置,$#的值减1,用于分别处理每个参数,移出去的参数不再可用. 注意:$#表示脚本后跟随的参数总的个数,$n可以获取脚本后跟随的第n个参数的值. 实例:加法计算 [root@youxi1 ~]# vim a.sh #!/bin/bash if […
#常见的算术运算符号 .+.-:加减 .*./.%:乘.除.取余 .**:幂运算 .++.--:增加记减少 .!.&&.||:取反,并且,或 .<,<=,>,=> :比较符号:小于,小于等于,大于,大于等于 .==.!=.=:比较符号:相等,不相等 .<<,>> :向左移,向右移 .+=.-=:赋值运算,+=相当于i=i+,-+相当于i=i- #常见的的算数运算命令 .(()):用于整数运算的常用运算符 .let:用于整数运算 .expr:也…
当你在shell命令行输入一条命令时,shell的搜寻顺序是如何的呢?当你的脚本名字和shell中的函数名字重名,shell是如何决定运行哪一个的? 在shell中,shell对于命令的搜寻优先级为: 1 Alias 2 keyword,如if 3 Function 4 Built-in,如cd 4 PATH中的脚本以及可运行程序 在shell中,有3个命令command,built-in,enable是专门来解决这种重名问题的. command command使shell只在Built-in以…
crontab 命令的用途就是:提交.编辑.列出或除去 cron 作业. 语法 crontab [ -e [UserName] | -l [UserName] | -r [UserName] | -v [UserName] | File ] 描述 crontab 命令提交.编辑.列出或除去 cron 作业.一个 cron 作业是一个命令,其运行是由 cron 守护程序在规则的调度间隔执行的.要提交一个 cron 作业,指定 crontab 命令用 -e 标志.crontab 命令调用一个编辑会话…
参考: Shell 脚本中信号处理实践 Linux Shell 的信号 trap 功能你必须知道的细节   在 unix 里,可能发生的每一种类型的事件都是由一个独立的信号来描述,每一个信号都是一个小的正整数,如: 名称 值 描述 SIGHUP 控制终端发现被挂起或控制进程死亡 SIGINT 键盘终端 SIGQUIT 来自键盘的退出信号 SIGKILL 杀死进程的信号 SIGALRM 定时时钟中断 SIGTERM 终止信号 使用:kill -l 列出所支持的信号 发送信号:kill -signa…
Linux 必学的 60 个命令 Linux 提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作.文件存取.目录操作.进程管理.文件权限设定等.所以,在 Linux 系统上工作离不开使用系统提供的命令.要想真正理解 Linux 系统,就必须从 Linux 命令学起,通过基础的命令学习可以进一步理解 Linux 系统. 不同 Linux 发行版的命令数量不一样,但 Linux 发行版本最少的命令也有 200 多个.这里笔者把比较重要和使用频率最多的命令,按照它们在系统中的作用分成下面六个…