我想将一些 bash 脚本排入我可以修改的文件。这样我就可以启动该文件“lauchscripts.py”或“lauchscripts.sh”,其中包含启动脚本的命令:
1:> source folder1/script1.sh
2:> source folder2/script2.sh
3:> source folder3/script3.sh
4:>
因此:1)当我启动它时,它会启动 script1.sh,然后当它完成时,它会启动 script2.sh 等等。2)随时在运行时,我可以向“lauchscripts”文件添加稍后将执行的行。假设在运行 script3.sh(第 3 行)时,如果我在第 4 行添加一条命令:
1:> source folder1/script1.sh
2:> source folder2/script2.sh
3:> source folder3/script3.sh
4:> source folder4/script4.sh
此行将在完成script3.sh之后执行script4.sh
那可能吗?
谢谢
答案1
如果您的文件包含名称脚本本身而不是代码,您可以轻松安全地完成此操作:
while read -r -u 9
do
. "$REPLY"
done 9< scripts.txt
与大多数脚本黑客一样,这有很多注意事项(如果你read
代码和eval
它):
- 如果文件描述符 9 (
-u 9
) 用于任何脚本中的任何内容,则所有结果均无效。 - 如果任何脚本设置了任何变量,则此上下文不会被清除。
- 一旦读取 scripts.txt 的最后一行,循环就结束。
更好的解决方案是跑步只需删除点即可读取脚本。要使此方法有效,脚本路径需要至少包含一个斜杠,否则脚本需要位于您的 上PATH
。