当我选择在 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