我有这样一个脚本~/draft
$ cat test.sh
#! /usr/local/bin/bash
for i in ./*;do
echo $i
done
当我运行它时test.sh
,代码块存储在
$ bash test.sh
./first.html
./second.html
./test.sh
./third.html
所以我运行脚本名称test.sh
并获取输出。
或者,我可以直接运行命令:
$ for i in ./*; do echo $i; done
./first.html
./second.html
./test.sh
./third.html
第二块得到相同的结果。
由于前面的代码驻留在 file 中test.sh
,那么该命令所在的文件名是什么for i in ./*; do echo $i; done
?
答案1
命令不必存储在要执行的文件中 - 解释器(在本例中bash
)可以简单地将命令行读入内存,就像读取脚本文件一样(带有一些与缓冲相关的小注意事项),然后执行它以完全相同的方式。