Linux学习笔记

来源:互联网 发布:规模以上 知乎 编辑:程序博客网 时间:2024/04/24 13:29

今天学习了bash的部分内容:

     重定向:

ls>./a.txt  将ls命令的执行结果输出到a.txt(前提:如果a.txt不存在则创建a.txt,否则清空a.txt文件)

ls>>./a.txt 将ls命令的执行结果追加到a.txt文件末尾(前提:如果a.txt不存在则创建a.txt)

编辑文件hello:

#!/bin/bash--------------------------------------------------------------表示确定文件是bash程序,需要由/bin目录下的bash程序解释执行

#this is a simple program---------------------------------------------#表示后面的语句为注释语句

echo hello world---------------------------------------------------------echo 将后面的字符串输出到标准输出中

hello=HELLO-------------------------------------变量和值以”=“连结,”=“两边不可以有空格(如值有空格,则需要给值加上单引号或双引号)。bash变量可以直接使用,不需要定义类型。如果变量没有赋值,直接使用的话,变量的值会默认为空(即null)

a=a1

b=b1

c=1

d=1

if[$a = $b]--------------------------------------   =表示相同(字符比较)。变量在引用时需加上“$”,第一次赋值和for循环的头部不需要

then

echo “$1"

elif[$c -eq $d]---------------------------------------   -eq表示相等(数值比较)

then

echo equal

else

echo error

fi ----------------------------------------if语句结束语

for i in 1 2 3 4 5

do

echo $i

done

function hello(){

local hello=hello1----------------------------------------定义hello为局部变量(bash中的变量的默认有效范围为当前程序,可使用local定义局部变量)

echo hello ----------------------------------------结果:hello

}

echo hello ----------------------------------------结果:HELLO

exit 0 ----------------------------------------退出当前shell,0表示”成功“


bash程序执行(Linux会另外开一个进程来运行bash):

1、直接执行bash程序,命令:

  $ bash hello---------------------------------------------------执行bash程序hello,在屏幕上显示hello world

              $ sh hello---------------------------------------------------------sh是指向bash的链接,执行结果同上

2、将hello文件改成可执行文件,然后直接运行该文件,命令:

  $ chmod u+x hello

  $ ./hello-----------------------------------------------------------当前目录不是当前用户可执行文件的默认目录(将当前目录“.”设为默认目录是一个不安全的设置),所以不能直接”$ hello”

因Linux是开新进程运行bash的,所以当前bash的变量可与其他bash程序的变量名相同,不会互相影响


      myname=newname

echo $myname

输出结果:newname

myname =newname错误,bash变量赋值时“=”两边不可以有空格

myname1='new name'--------------------------------------------------myname1 的值为new name

myname="it's my  $myname1"----------------------------------------双引号内的$myname1会显示myname1变量的值

echo $myname

输出结果:it's my new name


myname='it's my new name'------------------------------------------命令从左向右查找引号,以先遇到的为准。按下enter键后,需要继续输入字符,myname没有赋值成功。退出输入,需按Ctrl+C

myname=’it\'s my new\ name'----------------------------------------"\"为转义字符,myname的值为it's my new name????是否正确??


一般以大写表示环境变量,以小写表示用户自定义变量

bash中没有浮点类型变量,因为没有浮点运算

0 0
原创粉丝点击