生锈的简单 bash 脚本
rusty with simple bash scripts
我在这里的记忆非常陈旧,我只是看不出下面的一小段脚本有什么问题。我将问题隔离到这部分 >>
#!/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: Bad substitution
感谢任何帮助,谢谢。
你是sh
不明白bash的参数替换。使用 bash
即把 #!/bin/bash
作为你的 shebang 行。
您的脚本中存在一些小问题:
- 无需解析
ls
的输出
- 波浪号
~
未在双引号内扩展
- 字符串替换没有使用正确的模式
- 使用错误的 shebang 即
sh
而不是 bash
改为使用此脚本:
#!/bin/bash
cd ~/sandbox/inputVids/
for x in *.mp4; do
echo "$x";
cp "$x" ~/sandbox/outputVids/"${x/.mp4/.silent.mp1}"
done
我在这里的记忆非常陈旧,我只是看不出下面的一小段脚本有什么问题。我将问题隔离到这部分 >>
#!/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: Bad substitution
感谢任何帮助,谢谢。
你是sh
不明白bash的参数替换。使用 bash
即把 #!/bin/bash
作为你的 shebang 行。
您的脚本中存在一些小问题:
- 无需解析
ls
的输出 - 波浪号
~
未在双引号内扩展 - 字符串替换没有使用正确的模式
- 使用错误的 shebang 即
sh
而不是bash
改为使用此脚本:
#!/bin/bash
cd ~/sandbox/inputVids/
for x in *.mp4; do
echo "$x";
cp "$x" ~/sandbox/outputVids/"${x/.mp4/.silent.mp1}"
done