代码之家  ›  专栏  ›  技术社区  ›  Worried in Denver

升级到glob目录?

  •  1
  • Worried in Denver  · 技术社区  · 10 年前

    在OSX上,我正在编写一个bash脚本,以用户身份运行,而不是root用户。我经常需要升级到root以运行某些命令。

    在一节中,我尝试使用drwx-------权限遍历root拥有的目录的内容,这意味着我不能作为普通用户对目录的内容进行glob。

    这不起作用:

    sudo for files in "/System/Library/User Template"/*
      do
       some command "$files"
      done
    

    我想做的是:

    for files in "/System/Library/User Template"/*
      do
       sudo some command "$files"
      done
    

    这是一个新的系统引导脚本,所以我希望将所有内容都保存在一个脚本中,我绝对不能以root身份运行整个脚本。我想知道:

    1. 如果有适当的方法升级到for循环中的glob目录。
    2. 如果我应该以root身份更改权限,请运行代码,将权限更改回。
    1 回复  |  直到 10 年前
        1
  •  0
  •   konsolebox    10 年前

    我认为您只能考虑调用另一个脚本,该脚本将以root身份运行,并使用 sudo 用它。

    尽管您可以从输入中运行bash读取命令:

        sudo bash -s <<'EOD'
    for files in "/System/Library/User Template"/*; do
        some command "$files"
    done
    EOD