shell相关注意点
来源:互联网 发布:unix 环境高级编程 3 编辑:程序博客网 时间:2024/05/16 04:49
一、read命令读取文件时会自动去掉行前后的空格。
a.txt:(每行前后都有空格)
11111
222222
3333333
a.sh:
#!/bin/bash
while read oneline;do
echo "$oneline"
done < ./a.txt
执行结果:
111111
222222
333333
二、在字符串中使用变量时请使用${变量名}
a.sh:
#!/bin/bash
a="1"
b="2"
echo "$a_$b"
执行结果:
2
修改如下后:
echo "${a}_${b}"
执行结果:
1_2
原因:
在第一个脚本中,程序会去获取a_的值,因为没有定义,所以为空。
三、echo时奇怪的空格
a.sh:
#! /bin/bash
echo -ne \
"123\n"\
"123\n"\
"123\n"
执行结果:
123
123
123
第二和三行多了一个空格,原因不明,但是可以使用如下方法回避。
1.
echo -ne \
"123\n"\
"123\n"\
"123\n"
2.
echo -ne \
"123"\
"\n123"\
"\n123\n"
四、select菜单项中包含空格
a.sh:
#! /bin/bash
a="\"123\" \"quit without saving\" \"32131\""
select b in $a
do
:
done
运行结果:
1) "123"
2) "quit
3) without
4) saving"
5) "32131"
#?
回避方法:
#! /bin/bash
a=("123" "quit without saving" "32131")
select b in "${a[@]}"
do
:
done
运行结果:
1) 123
2) quit without saving
3) 32131
a.txt:(每行前后都有空格)
11111
222222
3333333
a.sh:
#!/bin/bash
while read oneline;do
echo "$oneline"
done < ./a.txt
执行结果:
111111
222222
333333
二、在字符串中使用变量时请使用${变量名}
a.sh:
#!/bin/bash
a="1"
b="2"
echo "$a_$b"
执行结果:
2
修改如下后:
echo "${a}_${b}"
执行结果:
1_2
原因:
在第一个脚本中,程序会去获取a_的值,因为没有定义,所以为空。
三、echo时奇怪的空格
a.sh:
#! /bin/bash
echo -ne \
"123\n"\
"123\n"\
"123\n"
执行结果:
123
123
123
第二和三行多了一个空格,原因不明,但是可以使用如下方法回避。
1.
echo -ne \
"123\n"\
"123\n"\
"123\n"
2.
echo -ne \
"123"\
"\n123"\
"\n123\n"
四、select菜单项中包含空格
a.sh:
#! /bin/bash
a="\"123\" \"quit without saving\" \"32131\""
select b in $a
do
:
done
运行结果:
1) "123"
2) "quit
3) without
4) saving"
5) "32131"
#?
回避方法:
#! /bin/bash
a=("123" "quit without saving" "32131")
select b in "${a[@]}"
do
:
done
运行结果:
1) 123
2) quit without saving
3) 32131
#?
五、read后消失的反斜杠
a.txt:
123
32\1
1/23
a.sh:
#! /bin/bash
while read oneline;do
echo $oneline
done < a.txt
执行结果:
123
321
1/23
其中\被当作命令的换行符,自动去掉了。
修正方法:
a.sh:
#! /bin/bash
while read -r oneline;do
echo $oneline
done < a.txt
执行结果:
123
321
1/23
-r选项:指定读取命令把一个\(反斜杠)处理为输入行的一部分,而不把它作为一个控制字符。
0 0
- shell相关注意点
- shell编程注意点
- shell编程注意点
- shell EOF注意点
- linux shell注意点
- jquery相关注意点
- Recycleview相关注意点
- shell注意点(一)
- shell注意点(二)
- Android 开发相关注意点
- sqlite3编程相关注意点
- qt.pro相关注意点
- iOS推送相关注意点
- SpringBoot 相关的注意点
- Shell编程注意点 ( by quqi99 )
- Makefile里调用shell注意点
- Makefile中使用shell注意点
- 在makefile中写shell注意点
- iOS navigationBar透明效果,不影响barButtonItem
- HDU 1.3.7 悼念512汶川大地震遇难同胞——老人是真饿了
- angluar表单验证
- AFNetworking和MJRefresh编译过程中遇到的几个小问题
- 软件项目如何控制需求蔓延(下)---老吴说产品
- shell相关注意点
- A. Interview
- 【基础入门】理解TCP/IP协议之滑动窗口技术(二)(转载)
- podfile 常见语法2
- HDU 1.3.8 As Easy As A+B
- Java Socket通信小结
- 第二周项目-小试循环
- 股神巴菲特对股市本质的形象解释
- 用pry阅读ruby源码--以task方法为例