原创 【转】Linux 常用命令

2015-4-1 17:30 764 7 7 分类: MCU/ 嵌入式 文集: Linux入门

shell 常用命令整理

 

1. echo 参数

  • -n 不换行(默认换行)
  • -e 使得转移字符有效

例子

ss='abc\n'
echo -e  $ss
abc
           #换行起作用
echo $ss
abc

2. 赋值时候=左右两侧不要带空格

a = "hello" #错误
a="hello"

3. shell运算

b=4
let "c=$b+1"
echo $c

4. 单引号和双引号区别

单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外。

举例

 bb="hello"
echo "$bb"
hello
echo '$bb'
$bb

注意ecoh -e '0062.png?rev=2.4-beta-20062.png?rev=2.4-beta-2 2032.png?rev=2.4-beta-2   bb,因为'$bb'就是字面值,不会转义。

5. 数组

5.1 声明、定义

  • array['a']=1
  • array=('a', 'b')
  • array=([1]='a' [2]='b')

5.2 访问

  • echo ${array['a']}
  • echo ${array[0]}

5.3 遍历

for var in ${array[*]}
do
    echo $var
done

5.4 数组长度

num=${#array[@]}    

对比:获取字符串长度:num=${#str}

6. Linux shell实现多线程

复制代码
for ((i=0;i<5;i++)); do
{
    sleep 3;
    echo "hello" $i
}
done
wait
复制代码

对比

复制代码
for ((i=0;i<5;i++)); do
{
    sleep 3;
    echo "hello" $i
}&
done
wait
复制代码

这个在上面的基础上多加了一个后台执行&符号,此时5个循环任务并发执行,最后需要3s多一点的时间(效果非常明显)。wait的作用是完成后台所有的任务后才往下执行,否则程序本身会等待。

7. 去除一行最后的'\r'

字符串最后有个'\r'是非常恶心的,可以通过tr命令去掉

复制代码
a="hello\r"
echo $a | tr -d '\r'
hello\r
echo $a | tr -d "\r"
hello\r
echo -e $a | tr -d '\r'
hello  #转移字符起作用
echo -e $a | tr -d "\r"
hello
复制代码

8. 编译shell文件

?
1
bash -x ***.sh

+开头的是编译的中间过程,不带+的为正常的输出。效果非常明显。 

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条