rusty使用简单的bash脚本
我用的是非常旧的内存,我看不出下面的脚本片段有什么问题。我将问题隔离到此部分>>rusty使用简单的bash脚本,bash,substitution,file-rename,Bash,Substitution,File Rename,我用的是非常旧的内存,我看不出下面的脚本片段有什么问题。我将问题隔离到此部分>> #!/bin/sh for x in `ls ~/sandbox/inputVids/*.mp4` do echo $x; cp "$x" "~/sandbox/outputVids/${x/%.mp4/.silent.mp1}"; done 我一直在得到消息 ./makeRepeater.sh:15:./makeRepeater.sh:替换错误 感谢您的帮助。您是sh,不理解bash的参数替
#!/bin/sh
for x in `ls ~/sandbox/inputVids/*.mp4`
do
echo $x;
cp "$x" "~/sandbox/outputVids/${x/%.mp4/.silent.mp1}";
done
我一直在得到消息
./makeRepeater.sh:15:./makeRepeater.sh:替换错误
感谢您的帮助。您是
sh
,不理解bash的参数替换。使用bash
即放置#/bin/bash
作为您的shebang行。您的脚本中有几个小问题:
ls
的输出~
不会在双引号内展开sh
而不是bash
#!/bin/bash
cd ~/sandbox/inputVids/
for x in *.mp4; do
echo "$x";
cp "$x" ~/sandbox/outputVids/"${x/.mp4/.silent.mp1}"
done
哪一条是15号线?发布的代码看起来不错。也许,您没有使用bash和其他shell,或者顶部有错误的shebang?你有
#吗/bin/bash
作为第一行?所讨论的行是最后一行之前的行。是的,文件以#开头/垃圾箱/shubuntu@ip-17:~/sandbox$ls-l/bin/sh lrwxrwx 1 root root 2014年2月19日4日/bin/sh->dash您正在使用的sh
。使用bash,即put#/bin/bash
作为您的第一行。感谢您的快速回复。我按照你说的更正了脚本,但第15行仍然出现相同的错误..erorr::ubuntu@ip-71:~/sandbox$./makeRepeater.sh/home/ubuntu/sandbox/inputVids/VID-20150504-WA0003.mp4./makeRepeater.sh:15:./makeRepeater.sh:替换错误一定是因为$x是/home/ubuntu/sandbox/inputVids/VID-20150505004-WA0003.mp4?我的意思是,这不只是VID-20150504-WA0003.mp4ok,但我想重命名的不仅仅是文件名,还有将其移动到outputVids文件夹的路径。。不过这也行,谢谢。解决了,谢谢。这很明显。我在这里用非常古老的记忆工作。哇,我突然觉得自己老了。是的,已经9年了!