编写一个 shell 脚本,要求用户输入目录的绝对路径,

编写一个 shell 脚本,要求用户输入目录的绝对路径,

编写一个 shell 脚本,要求用户提供目录的绝对路径,脚本应该测试目录是否存在。如果存在,则 ls -l 该目录。如果不存在,则告诉用户目录不存在。将文件另存为列表。我是初学者,但我不知道如何让脚本在确认路径是目录后打印 ls -l。

#!/bin/bash
echo 'Please enter an absolute pathway'

read PATH

if ($PATH == -d)

then
echo  ls -l $PATH

else

echo "This is not a directory"

fi

答案1

你最大的问题是if ($PATH == -d)部分。应该是

if [ -d "$FILEPATH"  ]

PATH是一个保留的特殊变量。如果您取消设置它,则无法使用除当前文件夹之外的其他文件夹中存储的任何程序。因此,请阅读man testtest 命令的选项和正确语法[],并始终引用变量

答案2

该脚本存在一些问题。

  • 变量 PATH 已被 bash 使用。
  • 测试本身
  • 输出结果的方式

我会这样做:

#!/bin/bash
read -p "Please enter an absolute pathway"
if test -d $REPLY
then
    ls -l $REPLY
else
    echo "This is not a directory"
fi

相关内容