Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4338188
  • 博文数量: 533
  • 博客积分: 13065
  • 博客等级: 上将
  • 技术积分: 9565
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-26 16:44
个人简介

https://blog.csdn.net/aquester https://www.cnblogs.com/aquester https://github.com/eyjian http://aquester.blog.chinaunix.net

文章分类

全部博文(533)

分类: 系统运维

2018-12-24 09:47:20

看以下两条命令:
[zhangsan@XEN /sys]$ a="ls";b="\$a";c="$b";"$c"
Hey! No command '$a' found, did you mean 'ia'?


[zhangsan@XEN /sys]$ a="ls";b="\$a";c="$b";eval "$c"
block  bus  class  dev  devices  firmware  fs  kernel  module  power


eval命令的作用是再次扫描解释,可多次叠加,如:
[zhangsan@XEN /sys]$ a="ls";b="\$a";c="\$b";eval "$c"     
Hey! No command '$a' found, did you mean 'ia'?
[zhangsan@XEN /sys]$ a="ls";b="\$a";c="\$b";eval eval "$c"
block  bus  class  dev  devices  firmware  fs  kernel  module  power


附: 关闭文件描述符函数,并导出该函数给子进程使用
close_all_fd()
{
    # 0, 1, 2, 255
    # compgen -G "/proc/$BASHPID/fd/*
    for fd in $(ls /proc/$$/fd); do
        if test $fd -gt 2; then
            # 关闭文件描述符fd
            eval "exec $fd>&-"
        fi
    done
}
# 导出close_all_fd
export -f close_all_fd
实际应用,可参见:https://github.com/eyjian/libmooon/blob/master/shell/process_monitor.sh。


阅读(95) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册