我需要编写一个脚本,用不同的参数启动我的程序,但我是Bash的新手.我这样开始我的程序:
./MyProgram.exe Data/data1.txt [Logs/data1_Log.txt].
这是我想要做的伪代码:
for each filename in /Data do
for int i = 0, i = 3, i++
./MyProgram.exe Data/filename.txt Logs/filename_Log{i}.txt
end for
end for
Run Code Online (Sandbox Code Playgroud)
所以我真的很困惑如何从第一个创建第二个参数,所以它看起来像dataABCD_Log1.txt并启动我的程序.非常感谢帮助.
PS我知道那里有类似的问题,但我没有发现创建我的日志文件名称.
为什么这不起作用?
find . -maxdepth 1 -type f -print0 | xargs -0 .
Run Code Online (Sandbox Code Playgroud)
我得到的只是xargs: .: Permission denied.
我的目录中有run.sh脚本。我还有两个名为d1.sh和d2.sh的脚本,位于其名为deep的子目录中。我想在 run.sh 脚本中获取 d1.sh 和 d2.sh ,因此我可以使用d2.sh中存储的“test”函数。
run.sh的代码如下所示:
#!/bin/bash
source ./deep/*
test
Run Code Online (Sandbox Code Playgroud)
d1.sh:
#!/bin/bash
echo -e "d1 is loaded"
Run Code Online (Sandbox Code Playgroud)
d2.sh:
#!/bin/bash
echo -e "d2 is loaded"
test() {
echo -e "test passed!"
}
Run Code Online (Sandbox Code Playgroud)
我使用以下命令执行run.sh:
bash run.sh
Run Code Online (Sandbox Code Playgroud)
我得到输出:
d1 is loaded
Run Code Online (Sandbox Code Playgroud)
所以看起来d1.sh脚本正在加载,但d2.sh没有加载。我的问题是,为什么会发生这种情况以及我应该如何加载存储在./deep文件夹中的所有脚本?