繁体   English   中英

在Shell脚本中更改目录,并使用expr

[英]Change directory in a shell script, and using expr

我刚开始使用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的正确方法。 正确的做法是什么?

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

b)引用参数的方式不同,尤其是在expr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM