not*_*shi 2 bash shell terminal sudo
这是代码
#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
Run Code Online (Sandbox Code Playgroud)
用于运行此行的行是:
getpack2 vocals-doo flute-wood
Run Code Online (Sandbox Code Playgroud)
这将创建所需的目录和文件
这也有效:
./getpack2 vocals-doo flute-wood
Run Code Online (Sandbox Code Playgroud)
但是,当我用sudo为命令添加前缀时:
sudo ./getpack2 vocals-doo flute-wood
Run Code Online (Sandbox Code Playgroud)
它给了我以下错误
./getpack2: 7: ARRAY[0]=vocals-doo: not found
./getpack2: 7: ARRAY[1]=flute-wood: not found
./getpack2: 15: Bad Substitution
Run Code Online (Sandbox Code Playgroud)
我是shell脚本的新手.刚开始学习它.是否存在某种范围错误?
您的超级用户(root)可能有一个不支持数组的不同shell(例如,dash或其他一些小shell).尝试仅使用标准的bourne shell结构进行编程.或者在脚本的标题中包含要使用的解释器:
#! /bin/bash
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
599 次 |
| 最近记录: |