我有以下 bash 脚本,
#!/bin/bash
echo $SHELL
i=1
for img in ../img/*.png; do
echo $img
new=$(printf "../img/tmp/pyr%d.png" "$i")
echo $new
# cp "$img" "$new"
let i=i+1
done
# avconv -r 2 -i ../img/tmp/pyr%d.png -b:v 1000k ../pop_pyr.mp4
Run Code Online (Sandbox Code Playgroud)
在../img文件夹中,有文件pyr1920.png, pyr1925.png, ...
当我运行此脚本时,出现此错误
../img/pyr1920.png
../img/tmp/pyr1.png
make_video.sh: 10: make_video.sh: let: not found
../img/pyr1925.png
../img/tmp/pyr1.png
Run Code Online (Sandbox Code Playgroud)
但是我将脚本粘贴到终端中,它运行良好。
../img/pyr1920.png
../img/tmp/pyr1.png
../img/pyr1925.png
../img/tmp/pyr2.png
Run Code Online (Sandbox Code Playgroud)
我的环境是 ubuntu 14.04。我知道默认的 /bin/sh 是破折号。我确保使用 bash 并通过echo $SHELL.
为什么它不能作为脚本工作,但在终端上工作正常?我试图找到一个解决方案,但我能找到的只是关于“破折号”和“bash”设置。
我找不到答案,所以请让我问这里.
我想在使用时保持ipython笔记本中的当前数字%matplotlib inline.那可能吗?
例如,我想在图表中绘制2条线
plt.plot([1,2,3,6],[4,2,3,4])
plt.plot([3.3, 4.4, 4.5, 6.5], [3., 5., 6., 7.])
Run Code Online (Sandbox Code Playgroud)
如果我将这两个命令行放在一个单元格中就可以了.该图显示了两行.但是,如果我将它们分别放入两个单元格中,当第二个单元格(plt.plot([3.3,4.4,4.5,6.5],[3.,5.,6.,7.]))执行时,前一个plot(plt.plot([1,2,3,6],[4,2,3,4]))被清除.我想绘制一个带有第一个单元格的线条的图形和一个带有第二个单元格的两条线条的图形.
我查了一下网站 它明确地清除了情节
plt.cla() # clear existing plot
Run Code Online (Sandbox Code Playgroud)
但它有点令人困惑,因为无论如何它会自动清除.
是否有任何命令不能清除(或保留)Matlab中的"hold on"之前的情节?