#!/bin/bash
## A=100
## ls -l
## free -m
eval "`grep "^## " $0 | sed 's/^## //'`"
echo "A=$A"
從執行結果來看,會顯示出 A=100,但是 A=100 原本是在 comment 符號 # 之後,為什麼會執行?原來是 grep "^##" 把 ## 開頭的程式取出,接著用 sed 置換 ## 。於是 eval 接著就會執行
A=100
ls -l
free -m
最後一列指令印出字元 A 等於變數 A 的值一百。因此輸出:
A=100
shell script 也是要花腦筋的。
沒有留言:
張貼留言