命令行在执行之前存储在哪里?

命令行在执行之前存储在哪里?

我有这样一个脚本~/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)可以简单地将命令行读入内存,就像读取脚本文件一样(带有一些与缓冲相关的小注意事项),然后执行它以完全相同的方式。

相关内容