Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 下划线转换为空格_Bash_Shell - Fatal编程技术网

Bash 下划线转换为空格

Bash 下划线转换为空格,bash,shell,Bash,Shell,在shell脚本中的一行中,我有以下内容: for i in `find ${DATA_DIR}/${KEYSPACE} -type d` 我已经定义: DATA\u DIR=/var/lib/cassandra/DATA KEYSPACE=test_keyspace 当我执行shell脚本时,它给出以下错误: find: '/var/lib/cassandra/data/test keyspace': No such file or directory 因此,它正在将下划线(3;)转换为

在shell脚本中的一行中,我有以下内容:

for i in `find ${DATA_DIR}/${KEYSPACE} -type d`
我已经定义:

DATA\u DIR=/var/lib/cassandra/DATA

KEYSPACE=test_keyspace
当我执行shell脚本时,它给出以下错误:

find: '/var/lib/cassandra/data/test keyspace': No such file or directory
因此,它正在将下划线(3;)转换为空格()。在我的文件系统
/var/lib/cassandra/data/test\u keyspace
上有一个目录,我想对其进行迭代

我也尝试了不使用变量,没有任何运气:

for i in `find ${DATA_DIR}/test_keyspace -type d`

对我来说没有问题也许这对你有帮助。所选解决方案指定您使用
$
它正在将下划线(u)转换为空格()。
什么在转换下划线?这种假设是不正确的。请参阅讨论在
find
标识的路径上进行迭代的正确方法<美元(…)中项目的代码>不在其中(就此而言,它是的一部分)。(顺便说一句,对
$keyspace
使用小写变量名是有意的;POSIX规定shell和实用程序对自己的变量使用所有大写名称,并保证使用小写名称的应用程序不会冒无意中修改shell或OS行为的风险;请参阅的第4段,记住在设置时,shell变量将覆盖任何类似命名的环境变量)。