You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Bash脚本使其类似ls/dir命令,支持输出指定目录内容信息

Bash脚本修改方案

你可以通过接收命令行目录参数、兼容无参数默认使用当前目录的逻辑来实现需求,修改后的脚本如下:

#!/bin/bash
# 读取第一个输入参数作为目标目录,无参数时默认使用当前目录
target_dir="${1:-.}"

# 校验目标目录合法性(可选,优化健壮性)
if [ ! -d "${target_dir}" ]; then
  echo "错误:${target_dir} 不是有效存在的目录" >&2
  exit 1
fi

# 遍历目标目录下的所有条目
for entry in "${target_dir}"/*
do
  # ${entry##*/} 用于去除路径前缀,仅输出文件名/目录名
  echo "${entry##*/}"
done

使用说明

  • 直接执行脚本:./your_script_name.sh,输出当前工作目录的内容,和原脚本效果一致
  • 指定目录执行:./your_script_name.sh /目标/目录/路径,输出指定目录的内容

关键语法说明

  • ${1:-.} 是Shell参数扩展语法:当第一个入参$1不存在或为空时,默认取值为.(当前目录)
  • 变量外层添加双引号是为了兼容名称包含空格、特殊字符的文件/目录
  • ${entry##*/} 是Shell字符串截断语法:从字符串头部删除最长的匹配*/的内容,实现去除路径前缀的效果

内容的提问来源于stack exchange,提问作者nobody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:27:04