Установить пользовательскую переменную по умолчанию в сценариях csh - PullRequest
1 голос
/ 28 сентября 2010

Я пишу сценарий оболочки csh, run, где пользователь должен передать путь в него как переменную $1. Как я могу определить, отсутствует ли $1, и определить для него значение по умолчанию?

Ответы [ 2 ]

2 голосов
/ 30 сентября 2010

Это работает на tcsh версии 6.15.00

#! /bin/csh

if( $#argv == 0 ) then
        set filename="(default file)"
else
    set filename=$argv[1]
endif

echo "The file is $filename."

Примечание
Стандарт csh не существует, как в случае оболочки POSIX; но по крайней мере базовые if-then-else и $#argv должны быть переносимы.

См. Также
POSIX и Korn Shell против других оболочек
Программирование Csh считается вредным
Bash

0 голосов
/ 28 сентября 2010

Вы можете сделать что-то вроде:

if [ $# -eq 0 ];then
        dir='default' # argument not passed use default.
else
        dir=$1        # argument passed..use it.
fi

# use $dir 
ls $dir
...