Bash - 使用 "/" 获取文件



我在我以这种方式实现的文件系统中有一个缓存。

  1. 存储一个值我做

    之类的事情
    echo ""$KEY1"_"$KEY2"="$VALUE" >> $CACHE_DIR/$INDEX.cache
    
  2. 要获取一个值,首先我来源源:

    source $CACHE_DIR/$INDEX.cache
    

    然后我回应了"$KEY1"_"$KEY2"

缓存示例:

foo1_foo2=wohohhowwho

问题是我有一些键,其中有一个"/",所以当我有一个键:

foo3_foo/4=wohohhowwho

并来源该文件,它说

cache/15637.cache: line 1: foo3_foo/4=wohohhowwho: No such file or directory

因为/

源命令是否有一个选项不在路径中搜索文件,而仅将内容视为vars?我可以逃脱/,但是还有另一种方法吗?

没有其他方法,因为不允许/作为bash变量中的字符。

您必须``sanitize''键,键为bash仅支持可变名称:字母,数字和下划线字符。

KEY1=${KEY1////_}
KEY2=${KEY2////_}

相关内容

  • 没有找到相关文章

最新更新