关于.sh 中的脚本

关于.sh 中的脚本

从昨天开始,我一直试图在我的脚本中运行一个名为“sed处理文本”的命令,并没有告诉我有任何错误,但是当我检查文件内部时,它只是抑制了应该被替换的文本。

有人可以帮我弄这个吗 ?

这是我的代码:

#!/bin/bash
echo "Bienvenue dans l'outils d'ajout à la base de données sur les Animés"
echo "Pour commencez veuillez taper le titre de l'animé dans ce format-ci"
echo "exemple_pour_tester ; Sans majuscules ni espaces"
cat ~/mal-project/anime_template >> ~/mal-project/sources/anime-list
    echo -n "Mal-Database ->"
            read ${titre}
            echo "processing..."
            sed -i "s/{titre}/${titre}/" ~/mal-project/sources/anime-list

答案1

您的脚本中有两个主要问题。

  1. 从 stdin 读取一些内容并将其放入titre名为

    read titre
    

    (前面没有$)。这会将您的输入放入变量 中$titre

  2. titre要用变量的内容替换文字,$titre您需要

    sed -i "s/titre/$titre/" ~/mal-project/sources/anime-list
    

只有在情况不明确时,才需要使用花括号(${titre}vs. )来明确变量的结束位置。假设您想用变量的内容替换文字$titretitre$titre 文本deux。最简单的方法是

s/titre/$titredeux/

但这里titre将被替换为空字符串,因为没有变量$titredeux。因此,我们写

s/titre/${titre}deux/

而是要明确变量实际上只是$titre

相关内容