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

bash – 如何使用sudo命令运行带有for循环的脚本

发布时间:2020-12-15 21:44:19 所属栏目:安全 来源:网络整理
导读:当我发现sudo命令和for循环问题时,我正在制作一个脚本. 我有这个测试脚本 for i in {0..10..2}do echo "Welcome $i times"done 正常输出应该是这样的: Welcome 0 timesWelcome 2 timesWelcome 4 timesWelcome 6 timesWelcome 8 timesWelcome 10 times 但它
当我发现sudo命令和for循环问题时,我正在制作一个脚本.

我有这个测试脚本

for i in {0..10..2}
do
    echo "Welcome $i times"
done

正常输出应该是这样的:

Welcome 0 times
Welcome 2 times
Welcome 4 times
Welcome 6 times
Welcome 8 times
Welcome 10 times

但它显示了这一点:欢迎{0..10..2}次
有任何想法吗 ?

bash版本:4.3.11(1) – 发布

解决方法

sudo中的shell不会进行大括号扩展.

$cat s.sh 
echo $SHELL
echo $SHELLOPTS
for i in {0..10..2}
      do
        echo "Welcome $i times"
      done

$./s.sh
/bin/bash
braceexpand:hashall:interactive-comments
Welcome 0 times
Welcome 2 times
Welcome 4 times
Welcome 6 times
Welcome 8 times
Welcome 10 times

$sudo ./s.sh
/bin/bash

Welcome {0..10..2} times

像其他人建议的那样使用seq().

(编辑:李大同)

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

    推荐文章
      热点阅读