第一个shell程序

为了可以直接通过文件名运行文件,而不是./filename,我们可以把文件放到指定路径中。
当PATH变量中包含某个路径时,如/root/bin,如果没有bin目录,我们只需要创建bin目录。如果没有/root/bin这个目录,我们可以使用一下命令将这个路径添加到PATH中:
export PATH=~/bin:"$PATH"
做完这个修改以后,它会在每个新的终端会话中生效,为了把这个修改应用到当前的终端会话中,我们必须让shell脚本重新读取这个.bashrc文件。
. .bashrc
这个点(.)命令是source命令的同义词,一个shell内建命令,用来读取一个指定shell命令文件,并把它看作是从键盘中输入的一样。

vim

设置语法高亮方法:

  1. :syntax on
  2. :set syntax = sh

:set hlsearch
打开这个选项是为了高亮查找结果,比如我们查找单词”echo“,通过设置这个选项,这个单词的每个实例都会高亮显示。
:set tabstop=4
设置一个tab字符所占据的列数,默认是8列,把这个值设置为4(一种常见做法),从而让行更容易适应屏幕。

shell中的变量

当shell碰到一个变量的时候,它会自动地创建它。
declare -r TITLE = “Page Title” 强制TITLE不可变,这种语法极少使用
注意在赋值过程中,变量名、等号和变量值之间必须没有空格。
可以在同一行中对多个变量赋值

在参数展开过程中,变量名可能被花括号"{}"包围着,由于变量名周围的上下文,其变得不明确的情况下,这会很有帮助。这里试图把一个文件名myfile改为myfile1,使用一个变量:

filename="myfile"
touch $filename
mv $filename $filename1
#报错
mv $filename ${filename}1
echo $(date)#显示当前的时间,date有许多参数
#2019年 2月21日 星期四 21时41分32秒 CST
echo "$(date +"%x %r %Z")"#x表示按标准日期显示,r表示按12进制时间显示,Z显示时区,加法前面有空格
#2019/02/21 09:42:40 下午 CST

here document

另外一种I/O重定向形式
here document中的单引号和双引号会失去它们在shell中的特殊含义。
它的形式如下

command<<token
text
token
#这里command是一个可以接受输入的命令名,token是一个用来指示嵌入文本结束的字符串。
#<<- 这种格式会忽略here document中的tab

猜你喜欢

转载自blog.csdn.net/weixin_41811413/article/details/87869347