通过命令行创建shell脚本

Mun*_*und 1 bash shell ubuntu

如何script.sh使用以下命令在 Ubuntu 上创建文件。该脚本必须包含语法完全相同的命令,其中$符号作为变量和引号,如下所示:

paths=($(ls -l /home/*/.bashrc | awk "{print \$NF}")); echo "${paths[@]}"

for path in "${paths[@]}"
do
    sudo sh -c "echo 'if [ -z \"\$HISTTIMEFORMAT\" ]
    then export HISTTIMEFORMAT=\"%F %T \"
    fi' >> "$path""
done
Run Code Online (Sandbox Code Playgroud)

我知道如何创建空文件并使用nano script.sh和手动粘贴文本,但我需要将其自动化。我正在努力传递带有所有符号等的文本。

类似于下面的内容,但失败了:

sudo bash -c 'echo "#!/bin/bash
paths=(\$(ls -l /home/*/.bashrc | awk \"{print \$NF}\")); echo \"\${paths[@]}\";
for path in \"\${paths[@]}\"
do
    sudo sh -c "echo 'if [ -z \"\$HISTTIMEFORMAT\" ]
    then export HISTTIMEFORMAT=\"%F %T \"
    fi' >> "$path""
done
" > /etc/temp/script.sh'
Run Code Online (Sandbox Code Playgroud)

Léa*_*ris 5

像这样做:

sudo tee -a /home/*/.bashrc > /dev/null << 'EOF'
if [ -z "$HISTTIMEFORMAT" ]
then export HISTTIMEFORMAT='%F %T'
fi
EOF
Run Code Online (Sandbox Code Playgroud)