在 shell 脚本中创建文件

在 shell 脚本中创建文件

我想创建一个 shell 脚本,其中包含一个带有路径的变量,我们需要在该路径上创建空的 .txt 文件。

我尝试:

**

path=directory part
touch Test{1..100}.txt

**

但这 100 个文件是在脚本所在的目录中创建的。你能帮我解决这个问题吗?

答案1

一个小评论:path考虑到与变量名的冲突,可能不是一个很好的选择PATH.编辑:正如 @Paul_Pedant 在评论中指出的, inzsh变量path是保留的,是保存 $PATH 中目录的字符串数组。其他一些 shell,例如bash,没有这样的保留。


你可以做类似的事情

FILES_HERE=/path/to/dir
touch $FILES_HERE/Test{1..100}.txt

如果您想要制作的文件数量可变,那么您可以touchwhile循环中使用它们:https://stackoverflow.com/a/31365662/3856731


拥有一个可以接受参数并将文件放在那里的脚本可能会很有用,如果不带参数调用脚本,则默认为 $PWD:

#!/bin/bash

touch ${1:-.}/Test{1..100}.txt

(答案下面的语法说明。)假设保存为test.sh,并且您已调用chmod +x test.sh,则可以执行以下操作:

$ ./test.sh

将 100 个空文件放入当前目录中。或者,致电

$ ./test.sh ~/Documents

将它们写入~/Documents.

编辑:
语法解释:意思是“如果未设置或等于空字符串,则${1:-.}替换为该脚本的第一个命令行参数 ( $1) 或默认为.(aka $pwd) ”。当您调用可执行脚本时,您提供的参数将被自动枚举:$1''

./script.sh $1 $2 $3 $4...

相关内容