Я пишу сценарий оболочки csh, run, где пользователь должен передать путь в него как переменную $1. Как я могу определить, отсутствует ли $1, и определить для него значение по умолчанию?
run
$1
Это работает на 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 должны быть переносимы.
if-then-else
$#argv
См. Также POSIX и Korn Shell против других оболочек Программирование Csh считается вредным Bash
Вы можете сделать что-то вроде:
if [ $# -eq 0 ];then dir='default' # argument not passed use default. else dir=$1 # argument passed..use it. fi # use $dir ls $dir