Изменить каталог в сценарии оболочки, и с помощью expr - PullRequest
0 голосов
/ 26 ноября 2011

Я только начинаю со сценариев оболочки (sh), и у меня есть две проблемы:

Проблема 1 : я пытаюсь создать очень простой скрипт, который создает каталоги сразу идет в это.Это скрипт, который у меня сейчас есть:

#!/bin/sh
mkdir -p "$1"
cd "$1"

По какой-то причине это не работает.Создает каталог, но не заходит в него.Я что-то упускаю здесь очевидное?

Issue 2 : Я пишу очень простой калькулятор, который использует expr.Но для умножения я использую x вместо *.Вот что я сейчас имею:

#!/bin/sh

if test $# -lt 3
then
   echo "Usage calc [operand1] [operator] [operand2]"
   exit
fi

if test $2 = x
then
   op='\*'
else
   op=$2
fi

ret=`expr $1 $op $3`
echo $ret

Это работает для всех операций, кроме умножения.Например, вызов calc 100 x 10 дает синтаксическую ошибку.Я пробовал разные комбинации, но не могу найти правильный способ присвоения \* op.Как правильно это сделать?

1 Ответ

1 голос
/ 26 ноября 2011

а) скрипт запускается в новой оболочке.cd не относится к внешнему виду.Попробуйте использовать псевдоним оболочки вместо этого сценария.

b) По-разному заключайте параметры в кавычки, в частности в expr

...