Bash 脚本执行带有参数的命令

Bash Script execute command with argument

我正在尝试构建一个新的托管服务器并迁移超过 50 个站点。我需要 运行 这个命令来使用 RT Easy Engine 构建每个站点。

sudo ee domain.com --php

我已经用域创建了一个 txt 文件,我可以毫无问题地让它循环。

array=()
# Read the file in parameter and fill the array named "array"

getArray() {
    i=0
    while read line # Read a line
    do
        array[i]=$line # Put it into the array
        i=$(($i + 1))
    done < 
}

getArray "domains.txt"

for e in "${array[@]}"
do
    echo $e

done

我将 for 循环更改为

echo "sudo ee " $e

工作正常。得到 sudo ee domain.com

如何在末尾添加--php并执行?

每次添加它,我都会得到

--phpe domain.com

你可以试试这个:

sed 's/\r//g' domains.txt | while read domain; do
    sudo ee "$domain" --php
done

这将读取每一行并将其存储在变量 domain 中,您可以随意调用它。

编辑:如果您的root权限在执行过程中用完了(不知道命令运行了多长时间),那么先执行sudo -i可能会有用。

Edit2:根据请求添加了回车 return 删除。