我想以更简洁、更灵活的方式将文件名作为 bash 脚本中的参数处理,为输入和输出文件名采用 0、1 或 2 个参数。
如何使 bash 脚本版本更简洁、更短?
这是我现在拥有的,有效,但不干净,
#!/bin/bash
if [ $# -eq 0 ] ; then #echo "args 0"
fgrep -v "stuff"
elif [ $# -eq 1 ] ; then #echo "args 1"
f1=${1:-"null"}
if [ ! -f $f1 ]; then echo "file $f1 dne"; exit 1; fi
fgrep -v "stuff" $f1
elif [ $# …Run Code Online (Sandbox Code Playgroud) 上下文:zsh Catalina MacOS:
可执行脚本BatesStamp使用 imagemagick 将数字标记到 jpg 文件:
# BatesStamp: OVERWRITES and stamps ONE file with COUNTER (upper left corner)
# usage ./BatesStamp COUNTER PATH_FILE
# to be used with find & -exec: https://unix.stackexchange.com/a/96239/182280
COUNTER=$1 # 1st argument = number to be stamped upon .jpg file
PATH_FILE=$2 # 2nd argument = /path_to_file/Filename.jpg
convert $PATH_FILE -auto-orient -gravity northWest -font "Arial-Bold-Italic" -pointsize 175 \
-fill red -annotate +30+30 "$COUNTER" $PATH_FILE;
((COUNTER++)) #/sf/answers/1472460251/
echo "watermarked i= $COUNTER $PATH_FILE"
Run Code Online (Sandbox Code Playgroud)
目标是用唯一的编号标记目录树中的所有 .jpg 文件。我相信每次调用 …