我刚开始使用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
。这样做的正确方法是什么?
答案 0 :(得分:1)
a)脚本在 new shell中运行。 cd
不适用于外部。尝试使用shell别名而不是此脚本。
b)引用参数的方式不同,特别是在expr