shell开头
#!/bin/bash
#!/bin/sh
#!/usr/bin/awk
#!/usr/bin/env python
#!/usr/bin/perl
这几行在第一行,不再第一行就是注释
不用的话就用相关解释器带上文件名执行
在写脚本的时候如果不加前面的也会交给bash解释,但是还是指定解释器比较好
注意点一
定义变量名的时候等号旁边没有空格
要在登录后显示初始化内容可以将脚本文件放到 /etc/profile.d/
的下面或者是更改/etc/motd 文件
单引号中`` 命令无效
当参数大于9个要使用${}方式
touch 主要是用来更新时间的....
使用cat连接两个文件
ln -s 源文件 快捷方式 s表示链接
有多个命令就使用;号,若将输出全都重定向用{}扩起来,{}是父shell,()是子shell
注意点二
read读到换行符为止,所以就使用循环可以将文件读完,不然好像只能读一行
黑洞/dev/null 了解一下-.-
cp mv rm 加上-i 进行确认
`command` == $(command)
`read file` 是要求用户输入并且保存到file变量中...
`read -p "" ver `就像scanf一样..(我下所的)
readonly xxx=1 或者readonly xxx(已定义) 表示只读无法改变包括unset
用重定向代替输入
shell中0给了stdin 1给了stdout 2给了stderr
其余数字可以来关联输出文件 例如文件中>&3 命令用3>文件 输出到文件中
exec
将文件关联
paste
两个文件连接
tr
替换
if
空格[]
while
空格:
expand unexpand 将tab 转换成空格 一般只早开头 使用-a 替换全部
unset 消除定义的变量
${array[*]} == ${array[@]} ""${array[*]} != "${array[@]}"前面是整个数组的字符串,后面时整个数组
条件语句if or elif 后面要跟上 then 如:
标签:bin,文件,shell,read,基础,空格,array
From: https://www.cnblogs.com/tuzichun/p/17079103.html