BASH 脚本使用输入和标准错误来长列表目录

Posted

技术标签:

【中文标题】BASH 脚本使用输入和标准错误来长列表目录【英文标题】:BASH scripting to long list a directory using Input and standard errors 【发布时间】:2022-01-11 10:47:17 【问题描述】:

我想创建一个以长格式列出目录内容的脚本。但是,我想首先确保用户在提示之前不会将输入添加到脚本命令行,如果需要应用错误并退出。如果它通过了该测试,那么脚本应该在尝试列出它之前确保该目录存在。如果没有,则出现另一个错误。如果存在,我需要在长列表中显示内容。

我在这方面真的很陌生,这就是我目前所拥有的。我不确定我是否走在正确的轨道上。任何帮助将不胜感激。

#!/bin/bash

# File Name: dlist
# Usage: dlist prompt: [/directory/path/here]
# Synopsis: The dlist script will prompt the user to input a directory path and will 
# return a long listing of the contents in that directory.
# Author: Romero

# Notify user of incoming prompt
echo -e "You will be prompted to enter the name of a directory you want to list in long form. "
# Prompt the user to input the directory to list on the same line as the input prompt
read -p "Directory to list: "
# Ensure User has not input directly into command line; if so issue std error 1 and exit

# Check to ensure directory exists before listing; if not issue std error 2 and exit
# If directory exists, list it in long form
if [ ! -d "$DIRECTORY" ]; then
     echo "This directory does not exist to list!" 1>&2
     exit 2
elif [ -d "$DIRECTORY" ]; then
     echo ls -l "$DIRECTORY"
fi 

【问题讨论】:

【参考方案1】:

使用 Bash 变量 $# 来获取参数的数量。示例见here。

【讨论】:

以上是关于BASH 脚本使用输入和标准错误来长列表目录的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程Shell中Bash基本功能

Shell编程Shell中Bash基本功能

终端使用bash的标准输入输出

Python简要标准库

使用来自 bash 的标准输入的多行 perl 的 heredoc 语法

3输入输出重定向bash算术正则表达式 学习笔记