标签: bash-expansion

Bash 脚本循环使用零填充数字

因此,我需要反复尝试向本地主机上的端口提交一个 4 位数字,然后评估从该端口获得的响应是​​否包含特定字符串,我使用grep. 我用过类似的东西echo {0000...9999} | nc localhost port。但是,我无法获得从该命令获得的良好序列扩展以在 bash 脚本中工作。我该如何编写 bash 脚本来解决这个问题?

shell bash shell-script brace-expansion bash-expansion

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

为什么 `cd ~"/mydata"` 成功而 `cd ~/"mydata"` 不成功

为什么第一个命令失败,而第二个命令成功?

$ cd ~"/mydata"
bash: cd: ~/mydata: No such file or directory

$ cd ~/"mydata"
Run Code Online (Sandbox Code Playgroud)

bash quoting bash-expansion

0
推荐指数
1
解决办法
63
查看次数

哪里 '/?' 参数扩展记录?

我遇到了 bash/dash 这个奇怪的参数扩展,我没有找到任何参考。这种扩展叫什么?它在哪里记录?

$ /???
bash: /bin: Is a directory
$ /????
bash: /boot: Is a directory
$ /?????
bash: /cdrom: Is a directory
$ /??????
bash: /libx32: Is a directory
Run Code Online (Sandbox Code Playgroud)

bash dash bash-expansion

0
推荐指数
1
解决办法
43
查看次数

Bash 替换显示目录结构

我想在将变量写入文件之前转义变量中的反引号。不幸的是,其中一些行有一些令人不快的项目。

(我想避免 foo 扩展。我希望 foo="ModPagespeedLoadFromFileRuleMatch disallow .*" 从字面上理解并在其上运行替换。我不想要任何扩展。它只是一个放置在文件中的指令。)

foo="ModPagespeedLoadFromFileRuleMatch disallow .*"
echo ${foo//\\/\\\\}
Run Code Online (Sandbox Code Playgroud)

这给了我:

ModPagespeedLoadFromFileRuleMatch disallow . .. .bash_history .bashrc .cloud-locale-test.skip .filemin .gnupg .local .mysql_history .profile .rnd .rpmdb .ssh
Run Code Online (Sandbox Code Playgroud)

我也试过这样:

foo='ModPagespeedLoadFromFileRuleMatch disallow .*';
bar=$( printf "$foo" | sed 's/\\/\\\\/g' );
echo $bar

foo='ModPagespeedLoadFromFileRuleMatch disallow .*';
bar=$( echo "$foo" | sed 's/\\/\\\\/g' );
echo $bar
Run Code Online (Sandbox Code Playgroud)

同样的问题。

我在这里缺少什么?

附注。尝试这个:

foo='ModPagespeedLoadFromFileRuleMatch disallow .*' 
echo "$foo" 
Run Code Online (Sandbox Code Playgroud)

然后试试这个(我不希望在管道时发生这种情况):

foo='ModPagespeedLoadFromFileRuleMatch disallow .*' 
echo "$foo" | 
Run Code Online (Sandbox Code Playgroud)

注意第二个例子中的管道

回答:

foo="ModPagespeedLoadFromFileRuleMatch\ disallow .*"
echo "${foo//\\/\\\\}"

foo='ModPagespeedLoadFromFileRuleMatch disallow .*';
bar=$( …
Run Code Online (Sandbox Code Playgroud)

bash bash-expansion

-1
推荐指数
1
解决办法
50
查看次数