理解shell的eval命令
看以下兩條命令:
[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。
相關文章
- shell eval命令使用
- eval 命令
- 輕鬆使用“Explain Shell”指令碼來理解 Shell 命令AI指令碼
- Hadoop Shell命令 |HDFS Shell命令| HDFS 命令Hadoop
- shell的命令(轉)
- 【轉】exec xargs的區別 另附eval命令介紹
- window.eval()和eval()的區別
- 強大好用的shell之shell命令
- Shell命令
- HBASE的SHELL命令操作
- 《Linux命令列與shell指令碼程式設計大全》第五章理解shellLinux命令列指令碼程式設計
- window.eval()和eval()是有區別的
- shell命令(一)
- Shell printf 命令
- Shell test 命令
- Hive shell 命令Hive
- HDFS shell命令
- Shell命令列命令列
- hbase shell命令
- 常用shell 命令
- eval
- Mac 下常用的 Shell 命令Mac
- shell中的點命令與source命令的區別
- 什麼是eval()?eval是用來幹什麼的?
- shell 基礎命令
- shell基本命令
- 開發 Shell 命令
- HBase 常用Shell命令
- Shell歷史命令
- SHell命令總結
- Hadoop Shell命令Hadoop
- android: shell 命令Android
- 一條shell命令
- 【SHELL】grep 命令用法
- 面試常用的shell命令彙總面試
- shell命令中的萬用字元字元
- 《shell下sort排序命令的使用》排序
- 常用的shell命令和使用技巧