在“if”语句中执行命令,并在成功时执行进一步的步骤

Ash*_*raS 5 bash directory function mkdir

我试图执行一个程序,该程序将根据提示符提供的完整路径创建一个目录,如果该目录已存在,它将返回一个错误(“目录已存在”)并再次询问递归函数中的名称。

这是我尝试过的:让我们说一个文件,test1其中:

#!/bin/bash
echo "enter the directory name"
read ab
check(){
if (( echo `mkdir $ab` 2>/dev/null )); then
  echo "directory created "
  echo `ls -ld $ab`
  exit
else
  echo "try again "
  echo "enter new value for directory:"
  read ab
  check
fi
}
check
Run Code Online (Sandbox Code Playgroud)

这里的问题是,如果目录存在,那么程序可以正常工作,但如果不存在,那么它会创建它,然后转到程序的其他部分。

jan*_*nos 3

回声总是成功的。没有它和子外壳:

#!/bin/bash
echo "enter the directory name"
read ab
check(){
    if mkdir "$ab" 2>/dev/null; then
      echo "directory created "
      ls -ld "$ab"
      exit
    else
      echo "try again "
      echo "enter new value for directory: "
      read ab
      check
    fi
}
check
Run Code Online (Sandbox Code Playgroud)