命令行采坑记

作者: 塘朗山小钻风 | 来源:发表于2019-09-25 16:34 被阅读0次

1. 文件展开

find . -name *.txt

报错:unknown primary or operator

这是因为命令行执行前先要执行波浪号~展开,变量替换,文件替换。这个 *.txt就会文件替换。

ls *.txt
crontab.txt log.txt out.txt svnlog.txt

使用双引号能避免文件替换。这样写就好了:find . -name "*.txt"

2. 一行中的空格

cat test.txt
a b
cd

如下这样用for会让空格分隔的变成两个各自处理

for a in `cat test.txt`
do
echo $a
done
a
b
cd

因为等价于 for a in a b

这样写就可以避免:

cat test.txt | while read space_name; do echo $space_name; done

这只是缩写成单行模式了。有些文件名含有空格就很痛苦。

3. 换行符的定义

Dos 和 windows 采用 "回车+换行",即 "CR + LF" 表示下一行,即敲一下回车键,相当于同时执行了 "回车+换行",即 ^M$($ 不是换行符的表示,换行符没有表示出来,$ 是文本结束 EOF 的表示)。
而 UNIX/Linux 采用 "换行符",即 "LF" 表示下一行,即 "\n";
苹果机(MAC OS系统)则采用 "回车符",即 "CR" 表示下一行,即 "\r";

Carriage Return(\r ascii:13)+Line Feed(\n ascii:10)

有时在Windows中编辑的文档是是按CRLF保存的,给Linux系统使用的时候在解析处理时\n当成换行符。\r是有效字符

src=$1

这样处理后src尾巴带了个\r

只需要notepad++编辑时右下角指定用对应换行符就可。

相关文章

  • Universal Link 前端部署采坑记

    Universal Link 前端部署采坑记 Universal Link 前端部署采坑记

  • 命令行采坑记

    1. 文件展开 find . -name *.txt报错:unknown primary or operator ...

  • TensorFlow分布式

    TensorFlow分布式采坑记 https://blog.csdn.net/tiangcs/article/de...

  • ReactNative采坑记

    记录一些坑和对rn的理解 1.React-Native 启动时报错 - “no bundle url presen...

  • antd 采坑记

    select placeholder 不起作用。 使用getFieldDecorator传入了一个默认值,如果默认...

  • nginx采坑记

    采坑系列2-nginx 最近因为工作,需要配置nginx,初期nginx都运行的非常的顺利,在终端输入命令 ngi...

  • IOS采坑记

    1.消除input在ios里面的默认内阴影

  • rabbitmq采坑记

    rabbitmq序列化 生产者序列化 ,默认是jdk序列化 消费者序列化,不写的话,只能用字节数组接收,不能转换成...

  • MySQL采坑记

    MySQL版本:8.0.15操作系统:Windows 10 ERROR 1148 (42000): The use...

  • MXNET采坑记

    卷积神经网络的输出单元数计算方法 `Conv2D`要求输入的x的形状为`(batch_size, in_chann...

网友评论

    本文标题:命令行采坑记

    本文链接:https://www.haomeiwen.com/subject/nkqwuctx.html