编写一个 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 test
test 命令的选项和正确语法[]
,并始终引用变量
答案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