如何在参数中打印 $

罪15

无法打印 $1 的相同参数

    #!/bin/bash
    if [[ "$1" =~ ^((-{1,2})([Hh]$|[Hh][Ee][Ll][Pp])|)$ ]]; then
            display_help; exit 1
    else
            while [[ $# -gt 0 ]]; do
            opt="$1"
            shift;
            current_arg="$1"
            case "$opt" in
                    "run_command"   ) RUN_COMMAND="$1"; shift;;
                    "cmd1"          ) CMD1="$1"; shift;;
                    *                   ) echo "ERROR: Invalid option: \""$opt"\"" >&2
                          exit 1;;
            esac
            done
    fi

    if [[ "$RUN_COMMAND" == "Custom" ]];then
            export command1=`echo $CMD1`
            echo $command1
    else
            echo "Invalid arguments"
    fi

结果输出

  ./test_non.sh run_command Custom cmd1 "date|awk '{print \\$1}'"
    date|awk '{print \}'
大妈

你应该使用

./script run_command Custom cmd1 "date|awk '{print \\$1}'"

为什么?我真的不知道那个 double 的原因\,但可能它也需要转义特殊字符$和参数号(一个\用于$1

以下是一些结果:

  • 好的一个:

    damadam@Pc:~$ export command1=`echo "date|awk '{print \\$1}'"`
    damadam@Pc:~$ echo $command1
    date|awk '{print $1}'
    
  • 测试:

    damadam@Pc:~$ export command1=`echo "date|awk '{print \$\1}'"`
    damadam@Pc:~$ echo $command1
    date|awk '{print $\1}'
    
    damadam@Pc:~$ export command1=`echo "date|awk '{print $\1}'"`
    damadam@Pc:~$ echo $command1
    date|awk '{print $\1}'
    
  • OP测试:

    damadam@Pc:~$ export command1=`echo "date|awk '{print \$1}'"`
    damadam@Pc:~$ echo $command1
    date|awk '{print }'
    

编辑 1:使用 OP 给出的示例脚本代码(我将它命名test.sh为亲自测试),只需要一个\来转义$1参数

damadam@Pc:~$ ./test.sh run_command Custom cmd1 "date|awk '{print \$1}'"
date|awk '{print $1}'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

如何在“”中打印双引号?

来自分类Dev

如何在Java中打印多行变量

来自分类Dev

如何在C中打印日期?

来自分类Dev

如何在slidify中打印表格?

来自分类Dev

如何在Haskell中什么也不打印

来自分类Dev

如何在javascript中打印功能签名

来自分类Dev

如何在c中打印指针?

来自分类Dev

如何在Smalltalk中打印多个输出

来自分类Dev

如何在Dart中打印美元符号$

来自分类Dev

如何在列中打印特征变量?

来自分类Dev

如何在Smarty中打印JSON

来自分类Dev

如何在shell脚本中打印$?

来自分类Dev

如何在CGI中打印纯文本?

来自分类Dev

如何在HTML标记中打印“ <”?

来自分类Dev

如何在Java中打印jpanel?

来自分类Dev

如何在终端中快速打印?

来自分类Dev

如何在log4j2中打印Object参数

来自分类Dev

如何在Elixir中打印PID?

来自分类Dev

如何在R中打印双引号(“)

来自分类Dev

如何在Node JS中打印对象

来自分类Dev

如何在Golang模板中打印换行?

来自分类Dev

如何在Getopt :: Long getoptions中打印命令参数

来自分类Dev

如何在TensorFlow中打印训练有素的分类器参数

来自分类Dev

如何在swift2中使用打印的分隔符参数

来自分类Dev

如何在链接中传递搜索参数进行打印

来自分类Dev

如何在闭包中采用多个参数并打印它们?

来自分类Dev

如何在python中打印%

来自分类Dev

如何在r中打印可变数量的参数?

来自分类Dev

如何在屏幕上打印我的 firebase 子参数的结果?