gpt4 book ai didi

bash - 使用 sudo 运行时我的 shell 脚本有什么问题?

转载 作者:行者123 更新时间:2023-11-29 09:45:01 25 4
gpt4 key购买 nike

这是代码

#file is named getpack2
count=0
while [ -n "$*" ] ; do
ARRAY[${count}]=$1
shift
count=`expr $count + 1`
done

for t in "${ARRAY[@]}"; do
mkdir $t
cd $t
touch hello
cd ..
done

我用来运行它的行是:

getpack2 vocals-doo flute-wood

这将创建所需的目录和文件

这也行:

./getpack2 vocals-doo flute-wood

但是,当我在命令前加上 sudo 时:

sudo ./getpack2 vocals-doo flute-wood

它给我以下错误

./getpack2: 7: ARRAY[0]=vocals-doo: not found
./getpack2: 7: ARRAY[1]=flute-wood: not found
./getpack2: 15: Bad Substitution

我是 shell 脚本的新手。今天才开始学。是否存在某种范围界定错误?

最佳答案

您的 super 用户 (root) 可能有一个不支持数组的不同 shell(例如 dash 或其他一些小 shell。)尝试仅使用标准的 bourne shell 结构进行编程。或者在脚本的头部包含要使用的解释器:

#! /bin/bash

关于bash - 使用 sudo 运行时我的 shell 脚本有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com