我想在脚本中使用我的 Internet 服务提供商的名称,但我不知道该怎么做。
请帮助我,提前致谢。
我有一些带有\n字符名称的文件夹。
例如:
$ ls
''$'\n''Test'
Run Code Online (Sandbox Code Playgroud)
那是指一个带有测试名称的文件夹,名称前有一个空行。
因此,当我在其父目录中运行一些这样的脚本时:
while IFS= read -r d; do
rmdir $d
done < <(find * -type d)
Run Code Online (Sandbox Code Playgroud)
表明:
rmdir: failed to remove '': No such file or directory
rmdir: failed to remove 'Test': No such file or directory
Run Code Online (Sandbox Code Playgroud)
因为它运行了两次,一次 on\n和另一个 on Test,因为文件夹名称有两行。
那么我该如何解决这个问题,让脚本知道\nTest只有一个文件夹?
当我打开终端时,出现以下错误:
bash: /usr/share/bash-completion/bash_completion: line 171: syntax error near unexpected token `}'
bash: /usr/share/bash-completion/bash_completion: line 171: `}'
Run Code Online (Sandbox Code Playgroud)
这是因为bash-completion文件的这个区域:
_upvar()
{
if unset -v "$1"; then # Unset & validate varname
if (( $# == 2 )); then
eval $1=\"\$2\" # Return single value
else
eval $1=\(\"\${@:2}\"\) # Return array
fi
fi
}
Run Code Online (Sandbox Code Playgroud)
为什么我在那部分出错?