结合 alias和 read用法,可以保存一些将要延迟运行的脚本,或者裸数据(字符串不被扩展)到一个变量中,以备后用。
$ alias BEGIN='read -d "" $1 <
$ BEGIN block1
> ls -la
> END
$ eval $block1
total 10
drwxr-xr-x 1 Xiaoqian Administ 4096 Nov 5 22:42 ./
drwxr-xr-x 12 Xiaoqian Administ 4096 Nov 5 22:31 ../
-rw-r--r-- 1 Xiaoqian Administ 3 Oct 31 16:26 .gitignore
-rw-r--r-- 1 Xiaoqian Administ 435 Oct 31 16:26 README.md
drwxr-xr-x 2 Xiaoqian Administ 0 Nov 5 22:32 bin/
-rwxr-xr-x 1 Xiaoqian Administ 792 Oct 31 16:26 meditate
完成,其实block1也就是一个裸数据,一个BEGIN ... END块包含任意字符文本,可以理解为
block1="ls -la",只是这里保证了文本不被shell引擎扩展。