相关疑难解决方法(0)

Bash:逐行读取文件并将每个段作为参数处理到其他prog

我有一些肮脏的工作要做,所以Bash脚本似乎是一个不错的选择.我是Bash的新手,这种经历让我很沮丧.

文件mapfiles.txt由以下行组成.每条线有四个由白色空间隔开的段.每个段表示外部程序名称'prog'的输入参数.例如,"cm19_1.png"是文件名,"0001"是索引,"121422481"是经度,"31035995"是纬度.

文件:mapfiles.txt

cm19_1.png 0001 121422481 31035995
cm19_2.png 0002 121423224 31035995
cm19_3.png 0003 121423967 31035995
…
Run Code Online (Sandbox Code Playgroud)

我想对每一行执行类似的命令.如下所示,prog的输入参数顺序略有不同.所以编写一个bash脚本来处理重复的工作是有意义的.

[Usage] prog <index> <longitude> <latitude> <filename>
example: prog 0001 121422481 31035995 cm19_1.png
Run Code Online (Sandbox Code Playgroud)

通常,bash脚本将以这种方式运行:

  1. 从mapfiles.txt中读取一行
  2. 拆分细分
  3. 使用正确的参数顺序调用prog

这是run.sh.

#!/bin/sh

input=mapfiles.txt
cmd=prog

while read line
do
        file=$(echo $line | cut -d' ' -f1)
        key=$(echo $line | cut -d' ' -f2)
        log=$(echo $line | cut -d' ' -f3)
        lat=$(echo $line | cut -d' ' -f4)
        echo $cmd $key …
Run Code Online (Sandbox Code Playgroud)

parameters bash line-by-line

36
推荐指数
2
解决办法
8万
查看次数

FireFox和Chrome在URL中处理\(反斜杠)的不同行为

背景

根据我的经验,当我的ubuntu工作站在具有活动目录的域上配置时,为我创建的用户名是根据以下模式.

DOMAIN_NAME \用户名

在linux上使用apache 的userdir扩展将需要在URL中使用用户名才能访问主目录中的public_html.

HTTP://本地主机/〜DOMAIN_NAME \用户名

问题A:

Chrome将URL中的所有反斜杠" \ "字符转换为正斜杠" / ",结果网址变为完全不同,并且始终显示" 未找到"结果.

HTTP://本地主机/〜DOMAIN_NAME/USER_NAME

另一方面, Firefox 不会将斜杠转换为正斜杠,因此Web服务器会向目标目标提供http请求.

Common solution is to encode back slash in %5C.
Run Code Online (Sandbox Code Playgroud)

问题B:

如果我们在CSS @import构造中使用类似的路径(包含\ in path),则通过报告404错误而导致css文件作为HTTP Get Request的导入过程失败,并且404错误中报告的URL错过了\ altogether 的存在.这意味着在从中调用GET请求之前,会从URL中删除\.

这种行为在Firefox和Chrome中很常见.但他们有不寻常的解决方案

Firefox需要转义反斜杠才能在css导入过程中工作.

@import url(" http:// localhost/~domain_name \\ user_name/path/to/css ");

Chrome通常需要编码的反斜杠解决方案.

@import url(" http:// localhost/~domain_name%5Cuser_name/path/to/css ");

  • 在URL中处理\的统一解决方案是什么?
  • 有没有办法避免\出现在用户名中?

css url firefox google-chrome backslash

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

标签 统计

backslash ×1

bash ×1

css ×1

firefox ×1

google-chrome ×1

line-by-line ×1

parameters ×1

url ×1