代码之家  ›  专栏  ›  技术社区  ›  arthur

Awk没有在bash脚本中工作,我找不到原因

  •  0
  • arthur  · 技术社区  · 3 年前

    当我直接从shell执行时,我使用的awk脚本工作正常。

    然而,当我把它包含在bash脚本中时,它不起作用,我也找不到原因。下面是我的脚本代码部分。

    它应该更改名称列表中的特定行。txt与awk脚本一起使用,但当我执行脚本时,它什么都不做。

    但就像我在shell中执行awk脚本时说的,它工作正常。

    edit_liste()
    {
    while [ "$choice" != "Q" ];do
      if [ "$choice" == "A" ];then
        echo "Enter new name."
        read new_name
        `awk -v new_name="$new_name" -v line="$line" -i inplace 'BEGIN { FS = ":" } {if(NR==$line) {$1=new_name} {print}}' $HOME/name_list.txt`
        return 0
    

    这段代码的目的是,用用户输入编辑文本文件中的记录。 名单内容如下: John Doe:45454545:jdoe@gmail.com 有4张这样的唱片。 我试图用awk脚本做的是:使用 new_name 从用户输入中获取的变量。使用预定义的 line 变量i旨在更改文本文件中的正确行。

    我还去掉了没有用的背勾。

    0 回复  |  直到 3 年前