首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.sh文件并不能执行所有命令。

.sh文件并不能执行所有命令。
EN

Unix & Linux用户
提问于 2022-06-06 21:16:01
回答 2查看 264关注 0票数 1

我编写了一个.sh文件,它只有一系列的linux命令来自动下载我需要的所有文件、软件包和软件(如果我需要擦除操作系统)。看上去是这样的:

代码语言:javascript
复制
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
sudo apt-get remove --auto-remove cheese -y
sudo ubuntu-drivers autoinstall -y

sudo add-apt-repository -y ppa:kdenlive/kdenlive-stable
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo add-apt-repository -y ppa:cappelikan/ppa
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

sudo apt-get install build-essential git curl wget ca-certificates gnupg lsb-release unrar libglvnd-dev pkg-config libssl-dev libffi-dev python3-dev python3-pip synaptic ubuntu-restricted-extras kdenlive nvidia-cuda-toolkit ffmpeg v4l2loopback-dkms obs-studio p7zip-full bazel-bootstrap libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-dev protobuf-compiler libboost-all-dev libopenblas-dev libleveldb-dev libsnappy-dev libhdf5-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler clang zlib1g  torbrowser-launcher octave liboctave-dev mainline deluge tree dconf-editor nemo spyder octave htop cmake qsharp mthree cirq-core cirq-pascal  pyquil -y

wget https://zoom.us/client/latest/zoom_amd64.deb
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
wget https://github.com/TorchStudio/torchstudio/releases/download/0.9.7/TorchStudio_0.9.7-Linux_Installer.deb
wget https://repo.nordvpn.com/deb/nordvpn/debian/pool/main/nordvpn-release_1.0.0_all.deb?_ga=2.120179208.140754703.1654140064-1729555164.1654140064

git clone https://github.com/qulacs/qulacs.git

sh <(curl -sSf https://downloads.nordcdn.com/apps/linux/install.sh)

#! Install Display driver
#! chmod +x displaylink-driver-*
#! sudo ./displaylink-driver-*

pip3 install –upgrade pip

#! Install python packages
pip3 install numpy pandas Pillow lxml opencv-python matplotlib spotify_dl instaloader scikit-learn scikit-image scipy numba tensorflow tensorflow-addons torch torchvision torchaudio fastai keras jupyterlab notebook qiskit tensorflow-quantum cirq argon2-cffi ipykernel ipython-genutils nbconvert nbformat prometheus-client Send2Trash terminado ipython jupyter-server jupyterlab-server nbclassic vosk pyquil imutils dlib mxnet qulacs torchviz

pip3 install pennylane --upgrade

pip3 install pennylane-sf pennylane-qiskit pennylane-cirq pennylane-forest pennylane-qsharp --force --no-dependencies


#! Install apps
sudo snap install clion --classic
sudo snap install pycharm-professional --classic
sudo snap install webstorm --classic
sudo snap install thunderbird
sudo snap install walc
sudo snap install gimp
sudo snap install telegram-desktop
sudo snap install slack --classic
sudo snap install caprine
sudo snap install skype
sudo snap install teams
sudo snap install android-messages-desktop --edge
sudo snap install discord
sudo snap install code --classic
sudo snap install simplescreenrecorder
sudo snap install vlc
sudo snap install meshlab
sudo snap install amass
sudo snap install obs-studio
sudo snap install inkscape
sudo snap install remmina
sudo snap install netron
sudo snap install feroxbuster
sudo snap install joplin
sudo snap install poweshell –classic
sudo snap install zaproxy –classic
sudo snap install bitcoin-core
sudo snap install flutter –classic
sudo snap alias flutter.dart dart
sudo snap install android-studio –classic

#! Install chrome, zoom and torchstudio
sudo dpkg -i google-chrome-stable_current_amd64.deb
sudo dpkg -i zoom_amd64.deb
sudo dpkg -i TorchStudio*
sudo dpkg -i nordvpn*
sudo chmod 777 ./quacs/script/build_gcc.sh nordvpn*
./qulacs/script/build_gcc.sh
sudo apt-get install ./nordvpn*
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
sudo apt-get install nordvpn


sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt autoremove -y

但是,许多命令没有被执行。特别是sudo apt-get install命令和pip3命令。我怎样才能解决这个问题?我哪里出问题了?

EN

回答 2

Unix & Linux用户

发布于 2022-06-06 21:48:56

回答:

特别是sudo apt-get install命令和pip3命令。

查看您的sudo apt-get install,您可能已经跨越了apt-get的可接受参数数,但我只是猜测,因为文档并没有说明有限制。

要调试脚本,我建议您运行:

bash -x yourscript.sh

它将输出所有带有所有消息的调用。

如果是这样的话,您可以尝试使用以下for循环和单独的包文件进行安装:

代码语言:javascript
复制
for i in `cat packageList`;do sudo apt-get -y install $i;done

此外,不要忘记,您想要运行此脚本而不具有交互性-因此sudo不能要求密码和其他命令不得要求任何确认或类似的。

希望能帮上忙。

票数 0
EN

Unix & Linux用户

发布于 2022-06-06 21:56:34

这里没几样东西。您没有说明您是如何运行它的,但是考虑到您没有说任何特定的错误,我猜它是一个后台任务。这意味着您永远不会看到大量sudo行的密码提示,从而导致它们(超时)失败。如果您确实是在后台运行它,那么使用>$HOME/Desktop/script.log 2>&1运行它,看看失败了什么。

您需要将脚本拆分为需要sudo的脚本和不需要sudo的脚本。然后删除所有sudo前缀并运行需要它的脚本(sudo my_cool_reinstall_script.sh)一次,这样就可以提前提供密码,脚本中的所有内容都可以按照您的预期运行。或者,您可以编写一个sudoers规则,允许sudoers*在没有密码的情况下运行来执行脚本。

但是,这假设您可能为第一个命令提供了sudo密码,grace时间过期了,您没有注意到它是一次又一次请求并超时。

或者您正在尝试安装名称已更改的软件包。我注意到您的驱动程序命令是折旧的,因为自动安装现在只是安装和ubuntu-驱动程序也将启动作为警告。

我尝试了一些类似的东西,并放弃了由于ppa的改变,关闭,包名称的改变和其他各种问题,只是使它不可行。NixOS是我知道的唯一一个发行版,您可以轻松地做到这一点。

现在很难不知道您是如何运行它的,因为您看不到失败命令中的错误。

如果有一个限制,我还没有达到它,我已经安装了更多的一个班轮。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/705205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档