小编Tar*_*lpe的帖子

如何使用 bash 脚本找到我的 Internet 服务提供商 (ISP)?

我想在脚本中使用我的 Internet 服务提供商的名称,但我不知道该怎么做。

请帮助我,提前致谢。

bash scripts

24
推荐指数
2
解决办法
1万
查看次数

for 在名称中包含 \n 字符的文件夹中循环

我有一些带有\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只有一个文件夹?

command-line bash scripts

9
推荐指数
3
解决办法
1017
查看次数

当我打开终端时,来自 /usr/share/bash-completion/bash-completion 的源命令错误

当我打开终端时,出现以下错误:

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)

为什么我在那部分出错?

command-line bash

6
推荐指数
1
解决办法
2786
查看次数

标签 统计

bash ×3

command-line ×2

scripts ×2