我在GitHub中有这个GitHub,我已经成功地逐行执行了几次(在不同的版本中)。
由于复制粘贴每个测试的所有行非常令人沮丧,我尝试使用raw表单使用curl执行远程Bash脚本,但在各种尝试中都失败了:
bash <(curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh)或
curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | bash两次都在大约3秒后完全失败,错误如下:
/dev/fd/63:第7行:$'\r':未找到命令
我的理论是,我可能需要转换出所有的回车,因此我尝试:
curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | tr -d '\r' | bash这带来了脚本的部分执行。例如,虽然apt-get install、export、git clone、rm -rf ${repo}/.git/和其他几个操作进行得很好,但是wget/unzip和几个带有前导选项卡的文件的处理都没有得到正确的处理。
我认为,在代码的某些部分,GitHub图形用户界面可能会将引导的空白空间从制表符更改为空格,反之亦然,因此我尝试将所有领先的空白空间更改为表格:
curl -s https://raw.githubusercontent.com/benqzq/uncwe/master/install.sh | sed "s/^ */\t/" | tr -d '\r' | bash结果似乎与上一次相同。
由于这四种方法失败,我想知道还有什么可用的。遗憾的是,我还没有在谷歌找到其他的例子。
也许我遇到了这些问题,因为我通常是从Windows 10工作的,每个文件中都会添加回车,但是人们可能会问,为什么像代码示例中那样“将它们翻译出来”会导致执行错误。
发布于 2018-02-14 14:26:25
我用dos2unix解决了这个问题。
我安装了它:
sudo apt-get update
sudo apt-get install dos2unix然后运行curl,将内容下载到stdout。我用管道将stdout中的内容通过dos2unix进行更改,然后通过bash执行它。
sudo curl -s https://raw.githubusercontent.com/benqzq/ulcwe/master/install.sh | dos2unix | bashhttps://unix.stackexchange.com/questions/423465
复制相似问题