找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 46|回复: 4

shell经过wget

[复制链接]

5

主题

690

回帖

1433

积分

金牌会员

积分
1433
发表于 2019-3-24 13:27:15 | 显示全部楼层 |阅读模式
本帖最后由 逸笙 于 2019-3-24 16:16 编辑

LOC大佬多。

[ol]
  • while [ -z "${user}" ]
  • do
  • read -p "Input your account:" user
  • done
  • while [ -z "${pwd}" ]
  • do
  • read -p "Input your password:" pwd
  • done[/ol]复制代码

    简单的几句,如果本地运行不会有问题,wget到本地后再bash也没有问题。

    但如果打算wget -O- xxx.com/aaa.sh | bash,就有问题了,
    首先是没有停下来输入user跟pwd,
    然后提示:line 11: syntax error near unexpected token `do'
    这个11行是第2个do,我echo user出来,它居然是
    "
    这样三行,百度了半天,好像while是自己的小环境,给|一下后就会出错。

    那怎么实现呢,我想用户不输入user就继续提示输入,然后还想可以直接wget -O- 来 | bash这样。
    ==================
    read -p "Input your password:" pwd < /dev/tty
    感谢dupit8
  • 回复

    使用道具 举报

    33

    主题

    949

    回帖

    2083

    积分

    金牌会员

    积分
    2083
    发表于 2019-3-24 15:54:54 | 显示全部楼层
    本帖最后由 dupit8 于 2019-3-24 16:01 编辑

    当然出错了,因为 read 的缺省就是标准输入,而你已经把标准输入重定向到wget去了。
    你可以把命令行写成
    bash <(wget -O http://xxx.com/xx.sh)
    而不是
    wget -O - http://xxx.com/xx.sh|bash

    或者
    read -p "Input your password:" pwd < /dev/tty
    回复

    使用道具 举报

    6

    主题

    75

    回帖

    182

    积分

    注册会员

    积分
    182
    发表于 2019-3-24 16:10:00 | 显示全部楼层
    小白不懂,顶一下
    回复

    使用道具 举报

    5

    主题

    690

    回帖

    1433

    积分

    金牌会员

    积分
    1433
     楼主| 发表于 2019-3-24 14:06:15 | 显示全部楼层
    惨案
    回复

    使用道具 举报

    37

    主题

    273

    回帖

    707

    积分

    高级会员

    积分
    707
    发表于 2019-3-24 15:47:30 | 显示全部楼层
    wget xxx.com/aaa.sh && bash aaa.sh && rm aaa.sh
    看不懂为啥要用管道, 为了一行写几个命令? 那用&&也行吧
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-4-23 18:52 , Processed in 0.016699 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表