#!/bin/bash
# Make a txt copy of any html files
for value in $1/*.html
do
if [[ $value == *.html ]]; then
cp $value $1/$( basename -s .html $value ).txt
fi
done
错误: cp:无法统计"/.html":没有这样的文件或目录 cp:无法访问"index.html/.txt":不是目录
以下语句中的$1
是第一个命令行参数。
$1/*.html
在您的代码中,它需要包含 HTML 文件的父目录名称。假设您的父目录是/home/user/my_html_files
,那么如果您将其作为命令行参数传递,那么将考虑此目录中的所有 HTML 文件。
# ./convert_html_to_txt.sh /home/user/my_html_files
以上将导致代码/home/user/my_html_files/*.html
。如果您的 HTML 文件位于当前目录中,只需将.
作为命令行参数传递(.
表示当前目录(
首先,您需要将目录名称(具有完整路径(传递给脚本,其次,因为您只循环访问目录中的HTML文件,因此您无需再次检查它,而是可以在其副本上放置检查条件,无论它是否成功复制.txt
。我相信您很可能正在寻找这种解决方案。
cat script.ksh
for value in $1/*.html
do
temp=${value%.*}
echo cp "$value" "$1/$temp.txt"
if [[ $? -eq 0 ]]
then
echo "File named $value copied successfully to "$value" "$1/$temp.txt"
else
echo "Please check file named $value NOT copied to "$value" "$1/$temp.txt"
fi
done
然后按script.ksh "/directory_name/with_full_path"
运行script.ksh
。此外,我已经echo
放在命令之前cp
所以一旦你看到命令通过上面的脚本打印正确,你可以删除它。