如何在一个 sh 文件中运行五个命令?

如何在一个 sh 文件中运行五个命令?

当我选择在 Cygwin 终端中时,我正在 Cygwin 终端中工作

./test2.sh

它分割了我的文件,在第二步应该执行剩余的命令,但它停止了

以下是我的测试2文件

echo -n "1 - Split files"
split -a 4 -d -l 100 d:/test/*.* c:/test/;

echo -n "2 - Add txt extension"
find C:/test/ -type f  ! -name "*.*" -exec mv {} {}.txt \;

echo -n "3 - Delete unnecessary characters"
sed -i -e '/Details (spedition)/d' -e 's/Value (eur): //g' -e 's/Number (price): //g' C:/test/*.txt;

echo -n "4 - Read only"
chattr +r C:/test/*.*;

echo -n "5 - Pack everything into 7 zip"
cygstart C:/test/7zip_script.bat
exit 

目前只有这个工作

 echo -n "1 - Split files"
 split -a 4 -d -l 100 d:/test/*.* c:/test/;

每个命令单独(单独复制粘贴)运行良好

为什么不一起工作呢?

答案1

shebang尝试在第一行 使用适当的并且/cygdrive/X/用于磁盘而不是X:,因为并非所有程序都会管理它。

#!/bin/bash
set -x
echo -n "1 - Split files"
split -a 4 -d -l 100 /cygdrive/d/test/*.* /cygdrive/c/test/;

echo -n "2 - Add txt extension"
find /cygdrive/c/test/ -type f  ! -name "*.*" -exec mv {} {}.txt \;

echo -n "3 - Delete unnecessary characters"
sed -i -e '/Details (spedition)/d' -e 's/Value (eur): //g' -e 's/Number (price): //g' /cygdrive/c/test/*.txt;

echo -n "4 - Read only"
chattr +r /cygdrive/c/test/*.*;

echo -n "5 - Pack everything into 7 zip"
cygstart /cygdrive/c/test/7zip_script.bat
exit

如果不起作用,请提供错误消息。
当然,使用以下命令设置脚本执行权限:

chmod +x your_script_file_name 

相关内容