여기 또 다른 해결책이 있습니다. 이것은 사용 POSIX 서브 스트링 파라미터 확장 은, 대쉬, 콘 셸 (KSH) Z 쉘 (zsh을) 등 배시 작동하므로
test "${string#*$word}" != "$string" && echo "$word found in $string"
몇 가지 예가 포함 된 기능화 된 버전 :
# contains(string, substring)
#
# Returns 0 if the specified string contains the specified substring,
# otherwise returns 1.
contains() {
string="$1"
substring="$2"
if test "${string#*$substring}" != "$string"
then
return 0 # $substring is in $string
else
return 1 # $substring is not in $string
fi
}
contains "abcd" "e" || echo "abcd does not contain e"
contains "abcd" "ab" && echo "abcd contains ab"
contains "abcd" "bc" && echo "abcd contains bc"
contains "abcd" "cd" && echo "abcd contains cd"
contains "abcd" "abcd" && echo "abcd contains abcd"
contains "" "" && echo "empty string contains empty string"
contains "a" "" && echo "a contains empty string"
contains "" "a" || echo "empty string does not contain a"
contains "abcd efgh" "cd ef" && echo "abcd efgh contains cd ef"
contains "abcd efgh" " " && echo "abcd efgh contains a space"
CURRENT_DIR
이 중복됩니다. 당신은 사용할 수 있습니다$PWD
.