Запретить * расширение в скрипте bash - PullRequest
1 голос
/ 18 марта 2010

Linux bash скрипт:

#!/bin/bash

function Print()
{
    echo $1
}

var="*"
Print $var

Результаты выполнения:

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

* расширен до списка файлов, который фактически является самим скриптом. Как я могу предотвратить это и увидеть фактическое значение переменной? В общем случае var может быть более сложным, чем *, например: home/alex/mydir/*.

Ответы [ 2 ]

5 голосов
/ 18 марта 2010

вам также нужно экранировать переменные:

Print "$var"

А в твоей функции:

echo "$1"
3 голосов
/ 18 марта 2010

set -o noglob

остановит расширение bash * и может быть удален с помощью 'set + o noglob'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...