gpt4 book ai didi

bash find 将 * 视为 *

转载 作者:行者123 更新时间:2023-12-04 05:04:01 28 4
gpt4 key购买 nike

#!/bin/bash
read nameArg
find -name "$nameArg"

使用此代码,当我输入例如 *.txt 时,它将为我提供以 txt 结尾的所有文件,但我只想要名称为 *.txt 的特定文件。如何让 bash 将 * 视为 * ?

直接在终端我知道我应该这样做:
find -name "\*.txt"

如何让它在脚本中工作?请注意,输入中并不总是有 * 。

最佳答案

你可以像这样即时逃脱 * :

find -name "${nameArg//\*/\\*}"

如果,正如 Ed 建议的那样,您可能想要一个更通用的解决方案,您可以使用 printf 的 %q 格式:
nameArg=$(printf '%q' "$nameArg")

或者如果您的 printf 支持它:
printf -v nameArg '%q' "$nameArg"

关于bash find 将 * 视为 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15751056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com