Files
8bd63e3f0ce0f53ef176378a459df0d936953771
Zhao Lei
6d2553ef2e
Remove quotes from subshell call in bash script
Always no quotes for $() statement. We don't need quotes to hold blanks in result: # i=$(echo 1 2 3) # echo $i 1 2 3 # These quotes can make something wrong in some case: # i=$(echo '!') # # i="$(echo '!')" -bash: !: event not found # No real problem for current code, only to use a better code style. Change-Id: Ib31b49680286600c9a182875122a0a752d3f8a33 Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com>
92 lines
2.1 KiB
Bash
92 lines
2.1 KiB
Bash
# This file contains bash functions that may be used by both guest and host
# systems.
# Non-recursive removal of all files except README.*
function clean_dir {
local target_dir=1ドル
if [ ! -e "$target_dir" ]; then
mkdir -pv "$target_dir"
elif [ ! -d "$target_dir" ]; then
echo >&2 "Not a directory: $target_dir"
return 1
fi
shopt -s nullglob
local entries=("$target_dir"/*)
if [ -n "${entries[0]-}" ]; then
for f in "${entries[@]}"; do
# Skip directories
if [ ! -f "$f" ]; then
continue
fi
# Skip README.*
if [[ $f =~ /README\. ]]; then
continue
fi
rm -f "$f"
done
fi
}
function is_root {
if [ $EUID -eq 0 ]; then
return 0
else
return 1
fi
}
function yes_or_no {
local prompt=1ドル
local input=""
while [ : ]; do
read -p "$prompt (Y/n): " input
case "$input" in
N|n)
return 1
;;
""|Y|y)
return 0
;;
*)
echo -e "${CError:-}Invalid input: ${CData:-}$input${CReset:-}"
;;
esac
done
}
#-------------------------------------------------------------------------------
# Helpers to incrementally number files via name prefixes
#-------------------------------------------------------------------------------
function get_next_file_number {
local dir=1ドル
local ext=${2:-""}
# Get number of *.log files in directory
shopt -s nullglob
if [ -n "$ext" ]; then
# Count files with specific extension
local files=("$dir/"*".$ext")
else
# Count all files
local files=("$dir/"*)
fi
echo "${#files[*]}"
}
function get_next_prefix {
local dir=1ドル
local ext=2ドル
# Number of digits in prefix string (default 3)
local digits=${3:-3}
# Get number of *.$ext files in $dir
local cnt=$(get_next_file_number "$dir" "$ext")
printf "%0${digits}d" "$cnt"
}
# vim: set ai ts=4 sw=4 et ft=sh: