gpt4 book ai didi

linux - 如何创建新文件并自动选择其名称?

转载 作者:太空宇宙 更新时间:2023-11-04 05:52:43 25 4
gpt4 key购买 nike

我制作了以下 Bash 脚本(我是初学者)。

它创建一个新目录programming,并在其中创建一个名为main.cpp的文件,然后在nano中打开它以供我们编辑。一旦我们保存它,它就会编译它,更改编译文件的名称并执行它。之后它返回根目录。

我想要的是,每次执行此脚本时,都会自动为文件指定一个新名称,例如如果第一次执行文件将为main.cpp,再次执行时,它应该创建一个名为 main_1.cpp 的文件,然后是 main_2.cpp 等等...

我可以使用 for 循环或 if-else 语句吗?

这是脚本:

mkdir programming
cd programming
nano main.cpp
g++ main.cpp
mv a.out main_executable
./main_executable
cd

最佳答案

mktemp command稳健且安全地做到这一点。

请特别注意,它避免了天真的实现中的两个严重的安全缺陷——可预测的文件名和符号链接(symbolic link)攻击。

#!/bin/sh
t=$(mktemp -d programmingXXXXXXX) || exit 127
trap 'rm -rf "$t"' HUP INT QUIT TERM # Clean up if interrupted
cd "$t"
nano main.cpp
g++ main.cpp -o main_executable && ./main_executable
# cd <- no point in that; the parent shell's cwd will not have been affected

您可能希望让脚本在末尾打印生成的目录的名称,和/或将其更改为生成文件而不是目录。

关于linux - 如何创建新文件并自动选择其名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28904838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com