加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Bash的源命令不能处理来自互联网的文件

发布时间:2020-12-15 22:18:21 所属栏目:安全 来源:网络整理
导读:我正在尝试使用curl从互联网上获取脚本文件,如下所示:source(curl url); echo完成了,我看到的是'cur'在curl开始下载文件之前就已经回复了! 这是实际的命令和输出: -bash-3.2# source ( curl --insecure https://raw.github.com/gurjeet/pg_dev_env/master
我正在尝试使用curl从互联网上获取脚本文件,如下所示:source<(curl url); echo完成了,我看到的是'cur'在curl开始下载文件之前就已经回复了! 这是实际的命令和输出:

-bash-3.2# source <( curl --insecure https://raw.github.com/gurjeet/pg_dev_env/master/.bashrc ) ; echo done
done
-bash-3.2# % Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2833 100 2833 0 0 6746 0 --:--:-- --:--:-- --:--:-- 0

我并不太担心“完成”在任何事情之前或之后被回应,我特别担心为什么源命令不能读取并对脚本采取行动!

这个命令在我的LinuxMint的bash上按预期工作,但不在CentOS服务器的bash上!

解决方法

起初,我没有注意到你正在使用Bash 3.2.该版本不会从流程替换中获取,但是后来的版本(如Bash 4)会这样做.

您可以保存文件并执行正常的文件来源:

source /tmp/del

(使用评论中的文件)

或者,您可以使用/ dev / stdin和here-string以及带引号的命令替换:

source /dev/stdin <<< "$(curl --insecure https://raw.github.com/gurjeet/pg_dev_env/master/.bashrc)"; echo done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读