【问题标题】:Prevent * to be expanded in the bash script防止 * 在 bash 脚本中被扩展
【发布时间】:2010-03-18 14:40:15
【问题描述】:

Linux bash 脚本:

#!/bin/bash

function Print()
{
    echo $1
}

var="*"
Print $var

执行结果:

alex@alex-linux:~/tmp$ ./sample-script 
sample-script

* 扩展为文件列表,实际上是脚本本身。如何防止这种情况并查看实际变量值?一般情况下,var 可以比* 更复杂,例如:home/alex/mydir/*

【问题讨论】:

    标签: linux bash scripting


    【解决方案1】:

    您也需要转义变量:

    Print "$var"
    

    在你的函数中:

    echo "$1"
    

    【讨论】:

      【解决方案2】:

      set -o noglob

      将阻止 bash 扩展 * 并且可以使用 'set +o noglob' 删除

      【讨论】:

      • 不,unset 不用于此目的。你会使用set +o noglob
      猜你喜欢
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      相关资源
      最近更新 更多