测试 cd 做了什么 ksh

测试 cd 做了什么 ksh

我在这里面临一个小问题。我正在做 :

cd $(find . -type d | grep "${4:0:4}.*${4:4:2}.*${4:6:2}")

$4是用户输入的数据。但是,如果用户不遵守输入格式,则会执行以下操作:cd 然后,我的$?将是 0 而不是 1,并且它将cd到我的家。我想在我的错误案例中介绍这一点(我的意思是:)if $? = 1。我怎样才能做到这一点 ?

答案1

您可以分两步完成:

newdir="$(find . -type d | grep "${4:0:4}.*${4:4:2}.*${4:6:2}")"
if [ -z "$newdir" ];then
    # error out here
else
    cd "$newdir"
fi
...

相关内容