linux - 为 Linux 构建脚本时出错

标签 linux bash ubuntu

我正在尝试为 linux 构建一个脚本,以便在我每次从头开始安装 linux 时帮助我。 脚本必须 1.- 添加存储库 2.- 从这些存储库安装软件。

添加存储库不是问题,问题是当我尝试从此存储库安装软件时。 对于 repo :

sudo add-apt-repository -y ppa:webupd8team/java

在那之后,脚本应该进行更新,所以:

sudo apt-get update

看起来很简单,其实不然,因为我收到一个错误:

找不到命令更新。 等等其他软件

apt-get -y install oracle-java8-installer

找不到 oracle-java8-installer 包..

我真的不知道该怎么办,看起来没什么用,我给文件赋予了全部权限等等……总是出现同样的错误。 但是,如果我直接从终端运行命令 apt-get install,就可以正常工作。

有什么帮助吗?

最佳答案

实际上,我在 Windows 中编写了一个脚本,以便在将来的 Linux 安装中使用它,但由于某些原因,它无法正常工作。我认为这是一个命令或拼写错误的单词,因此我搜索了一个解决方案,但无论如何都无济于事。

在虚拟机中调试我的脚本时,我发现该脚本给出了一些随机错误,例如“/r”不支持等。真的很奇怪,因为在我的脚本中搜索该行代码后我没有找到它。

考虑到这一点,我再次搜索这些错误,发现由于某些原因,如果您在 Windows 机器上编写代码,它会将其保存为 crlf 类型,这在 Linux 系统中解释确实是错误的。

一些用户的解决方案是将类型从 CRLF 转换为 LF,在 linux 中使用命令 dos2unix

dos2unix filename.sh

制作完成并再次运行我的脚本后一切正常。

关于linux - 为 Linux 构建脚本时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47513796/

相关文章:

linux - 如何区分 fifo 可打开内容和可读内容?

linux - libc6 :amd64 current status 'half-install' POP-os

linux - 如何将命令应用到第n列?

android - 在 Ubuntu 上安装 Calabash Android 时无法构建 gem native 扩展

docker - docker 登录中的 "Error saving credentials"

linux - Elixir:在 Ubuntu 上安装 Elixir 会终止正在运行的 Couch DB 实例

java - Linux 上的自定义 TG2480H USB

c++ - 如果日期在 2116 年,boost timed_wait 不会等待

bash - 按染色体(行标题)将文件拆分为新文件

mysql - 如何在shell脚本中将mysql存储过程的结果转换为JSON数据?