更改shell脚本中的目录,并使用expr

时间:2011-11-25 23:21:56

标签: shell unix sh

我刚开始使用shell脚本(sh),我有两个问题。

问题1 :我正在尝试创建一个非常简单的脚本来创建一个目录并立即进入它。这是我目前的脚本:

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

出于某种原因,这不起作用。它创建了目录,但没有进入它。我错过了一些明显的东西吗?

第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 个答案:

答案 0 :(得分:1)

a)脚本在 new shell中运行。 cd不适用于外部。尝试使用shell别名而不是此脚本。

b)引用参数的方式不同,特别是在expr