我需要编写一个脚本,用不同的参数启动我的程序,但我是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命令的结果,所以我想出了:
getlist() {
for f in $(find . -iname "foo*")
do
echo "File found: $f"
# do something useful
done
}
Run Code Online (Sandbox Code Playgroud)
没关系,除非文件名中有空格:
$ ls
foo_bar_baz.txt
foo bar baz.txt
$ getlist
File found: foo_bar_baz.txt
File found: foo
File found: bar
File found: baz.txt
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能避免空格分裂?
这是我正在尝试做的事情:
为shell脚本提供一个参数,该脚本将在jpg,bmp,tif扩展名的所有文件上运行任务.
例如:./ doProcess/media/repo/user1/dir5
并且该目录中的所有jpg,bmp,tif文件都将运行某个任务.
我现在拥有的是:
for f in *
do
imagejob "$f" "output/${f%.output}" ;
done
Run Code Online (Sandbox Code Playgroud)
我需要帮助for循环来限制文件类型,并且还有一些在指定目录而不是当前目录下启动的方法.
因此,我尝试在Mac上执行Shell脚本(.sh),但遇到了麻烦。因此,对于每个文件,我都希望对其进行复制并将其转换为另一种类型(。少到.css)。我已经知道该怎么做:
lessc fileToConvert.less destinationOfConvertedFile.css
Run Code Online (Sandbox Code Playgroud)
现在我的问题是将其集成到一个循环中(循环一个文件夹中的所有文件)。我尝试过,但似乎没有任何效果:
alias proj="cd /Users/maxwell/Documents/WebStorm"
for /D /r %%G in * DO Echo We found %%G
Run Code Online (Sandbox Code Playgroud)
我尝试将其作为测试,但即使这样也不起作用。有任何想法吗?