raspberry pi,脚本中的apt-get update不起作用

Ric*_*ard -1 bash raspberry-pi raspbian

当我跑:

sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

从命令行,它的工作原理.

如果我把同一行放在一个脚本文件maintain.script:

echo UPDATING SYSTEM SOFTWARE – UPDATE
sudo apt-get update
echo UPDATING SYSTEM SOFTWARE – UPGRADE
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

并运行:

sudo ./maintain.sh
Run Code Online (Sandbox Code Playgroud)

我收到错误:

E: Invalid operation update
E: Invalid operation upgrade
Run Code Online (Sandbox Code Playgroud)

我已将脚本标记为可执行文件.

FSQ评论后更新

这是脚本文件:

#!/bin/bash
echo "UPDATING SYSTEM SOFTWARE – UPDATE"
apt-get update
echo "UPDATING SYSTEM SOFTWARE – UPGRADE"
apt-get upgrade
echo "UPDATING SYSTEM SOFTWARE – DISTRIBUTION"
apt-get dist-upgrade
echo "REMOVING APPLICATION ORPHANS"
apt-get autoremove –purge
echo "UPDATING FIRMWARE"
rpi-update
Run Code Online (Sandbox Code Playgroud)

这是命令:

pi@raspberrypi2 ~/projects $ sudo ./maintain.sh
Run Code Online (Sandbox Code Playgroud)

结果如下:

: not foundsh: 1: ./maintain.sh: #!/bin/bash
UPDATING SYSTEM SOFTWARE – UPDATE
E: Invalid operation update
UPDATING SYSTEM SOFTWARE – UPGRADE
E: Invalid operation upgrade
UPDATING SYSTEM SOFTWARE – DISTRIBUTION
E: Invalid operation dist-upgrade
REMOVING APPLICATION ORPHANS
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package –purge
UPDATING FIRMWARE
: not foundsh: 11: ./maintain.sh: rpi-update
Run Code Online (Sandbox Code Playgroud)

Ric*_*ard 6

这是一个文件格式问题.我使用Windows记事本编辑文件夹共享上的文件,它使用不同的\ r \n到Linux.

这是更正我的脚本文件的命令:

sed -i 's/\r//' maintain.sh
Run Code Online (Sandbox Code Playgroud)

这是我用来处理文件夹中所有脚本文件的脚本文件,并确保它们是可执行的:

#!/bin/bash
echo "Correcting script file formats"
for file in *.sh
do
    echo $file
    sed -i 's/\r//' $file
    chmod +x $file
done
Run Code Online (Sandbox Code Playgroud)