创建目录的bash shell脚本

创建目录的bash shell脚本

编写一个 Bash shell 脚本程序,创建 3 个目录,,dir1然后将以下文件放入每个目录,。 大小为零,内容为当前日期/时间。创建一个名为的文件,该文件仅放入包含主机名的文件中的行的目录中。使用循环创建目录和文件。您将需要使用 if 条件块来通过命令和进行创建。dir2dir3file1file2file1file2file3dir3/etc/hostsfile3grephostname

答案1

不需要任何循环。事实上,这只会造成混乱和低效。

mkdir dir{1..3}
touch dir{1..3}/file1
date | tee dir{1..3}/file2 >/dev/null
grep "$(hostname)" /etc/hosts >dir3/file3

这个答案唯一稍微高级的事情是使用tee.该tee实用程序将获取标准输入上的数据并将其复制到多个文件,然后再次复制到标准输出。我在这里使用它来将实用程序中的日期写入date三个file2文件中。重定向到/dev/null末尾,这样我们就不会得到终端中显示的日期。

在上面的代码中,dir{1..3}将被扩展为dir1 dir2 dir3并且dir{1..3}/file1将被扩展为dir1/file1 dir2/file1 dir3/file1在以它作为参数调用实用程序之前。

答案2

这会做:

for i in {1..3}; do 
  mkdir dir$i
  touch dir$i/file1 
  date > dir$i/file2 
  if [ $i -eq 3 ]; then 
    grep $(hostname) /etc/hosts > dir$i/file3
  fi
done

相关内容