我文件夹中有一些文件,我想用一个命令启动它们。结构如下:
keddad@keddad-HP:/media/$ ls
somfile.sh
otherfile.sh
onemorefile.sh
因此我尝试使用以下命令来执行此操作:
./*
但它只启动第一个文件,忽略文件夹中的其他文件。我怎样才能一次性启动它们(或者让它们一个接一个地工作,这样在终止第一个文件后才会启动第二个文件)?
答案1
当你尝试 ./* 时,shell 会看到单个命令:
./somfile.sh ./otherfile.sh ./onemorefile.sh
或者换句话说,它看到一个命令(./somefile.sh)带有两个参数(./otherfile.sh ./onemorefile.sh)
要逐个(顺序)运行它们:
for each in ./* ; do "${each}" ; done
要一次运行它们(同时/并行):
for each in ./* ; do "${each}" & done