美观网站建设价格,宠物电子商务网站建设方案,昆明专业网站建设,建网站什么样的域名最好bash基础的内置命令
echoevalexecexportreadshift echo命令
-n 不换行输出
-e 解析字符串中的特殊符号\n 换行
\r 回车
\t 制表符 四个空格
\b 退格-n参数演示
xiao123xiao123:~/Downloads$ echo 你真胖;echo 你还挺可爱;
你真胖
你还挺可爱
xiao123xiao123:~/Downloads$ ec…bash基础的内置命令
echoevalexecexportreadshift echo命令
-n 不换行输出
-e 解析字符串中的特殊符号\n 换行
\r 回车
\t 制表符 四个空格
\b 退格-n参数演示
xiao123xiao123:~/Downloads$ echo 你真胖;echo 你还挺可爱;
你真胖
你还挺可爱
xiao123xiao123:~/Downloads$ echo -n 你真胖;echo 你还挺可爱;
你真胖你还挺可爱
xiao123xiao123:~/Downloads$ echo -n 你真胖;echo -n 你还挺可爱;
你真胖你还挺可爱xiao123xiao123:~/Downloads$-e参数演示
xiao123xiao123:~/Downloads$ echo 我看你挺\n好的
我看你挺\n好的
xiao123xiao123:~/Downloads$ echo -e 我看你挺\n好的
我看你挺
好的
xiao123xiao123:~/Downloads$ printf 我看你挺\n好的
我看你挺
好的xiao123xiao123:~/Downloads$ printf 我看你挺\n好的\n
我看你挺
好的
xiao123xiao123:~/Downloads$eval命令
执行多个命令
xiao123xiao123:~/Downloads$ eval ls;cd /tmp
different.sh make_vars.sh nohup.out special_test.sh t1.sh test.sh
xiao123xiao123:/tmp$exec命令
不创建子进程执行后续命令且执行完毕后自动exit。
xiao123xiao123:~/Downloads$ su - root
Password:
rootxiao123:~# exec date
2023年 02月 25日 星期六 10:45:02 CST
xiao123xiao123:~/Downloads$export命令
查找和设置环境变量的值
read 命令
用于接收标准输入或者其他文件描述符的输入并且可以和用户进行交互。如果没有指定变量名读取的数据将被自动赋值给特定的变量$REPLY。read每次调用读取一行。
-a 指定变量为数组
-r 反斜杠转义不会生效意味着行末的’\’成为有效的字符例如使 \n 成为有效字符而不是换行
-p 指定输出提示信息
-d 输入结束符当输入的内容出现这个字符时立即结束。一般情况下是以IFS为参数的间隔但是通过-d自定义
-n 指定输入的字符长度
-t 指定读取值时等待的时间秒read命令会一直等待用户输入时间到自动退出
-s 不显示输入的值一般用于密码
IFS Internal Field Separator输入字段分隔符Bash 会根据 IFS 中定义的字符来进行字符串拆分。无选项单参数 不带参数输入值都用空格隔开
xiao123xiao123:~/Downloads$ read ARGS
11 22 33
xiao123xiao123:~/Downloads$ echo ${ARGS}
11 22 33
xiao123xiao123:~/Downloads$无选项多参数 定义多个变量变量和输入值都用空格隔开。
xiao123xiao123:~/Downloads$ read ARG1 ARG2
11 22 33 44
xiao123xiao123:~/Downloads$ echo ${ARG1} ${ARG2}
11 22 33 44
xiao123xiao123:~/Downloads$ echo ${ARG1}
11
xiao123xiao123:~/Downloads$ echo ${ARG2}
22 33 44
xiao123xiao123:~/Downloads$-a展示 将接收到的数据看作一个数组。使用IFS定义的分割符分割。
xiao123xiao123:~/Downloads$ read -a ARGS
11 22 33 44 55
xiao123xiao123:~/Downloads$ echo ${ARGS[*]}
11 22 33 44 55
xiao123xiao123:~/Downloads$ echo ${ARGS[1]} ${ARGS[2]}
22 33
xiao123xiao123:~/Downloads$-r展示 字符串原样输出不转义特殊字符。
xiao123xiao123:~/Downloads$ read -r ARGS
\b\narg
xiao123xiao123:~/Downloads$ echo ${ARGS}
\b\narg
xiao123xiao123:~/Downloads$-d展示 指定read命令的结束符。
xiao123xiao123:~/Downloads$ read -d - ARG
arg1
arg2
arg3
-xiao123xiao123:~/Downloads$ echo ${ARG}
arg1 arg2 arg3
xiao123xiao123:~/Downloads$-p展示 指定输出提示信息。
xiao123xiao123:~/Downloads$ read -p 请输入一个字符 ARG
请输入一个字符a
xiao123xiao123:~/Downloads$ echo ${ARG}
a
xiao123xiao123:~/Downloads$-t展示 指定输入的超时时间。单位s
xiao123xiao123:~/Downloads$ read -t 3 ARG
xiao123xiao123:~/Downloads$-s展示 不显示输入的字符。
xiao123xiao123:~/Downloads$ read -s ARG
xiao123xiao123:~/Downloads$ echo ${ARG}
1234567890
xiao123xiao123:~/Downloads$IFS展示
xiao123xiao123:~/Downloads$ IFS|
xiao123xiao123:~/Downloads$ read ARG1 ARG2 ARG3
1|2|3
xiao123xiao123:~/Downloads$ echo ${ARG1}
1
xiao123xiao123:~/Downloads$ echo ${ARG2}
2
xiao123xiao123:~/Downloads$ echo ${ARG3}
3
xiao123xiao123:~/Downloads$IFS文件实验展示
xiao123xiao123:~/Downloads$ cat ./file.csvcyberciti.biz|202.54.1.1|/home/httpd|ftpcbzuser
nixcraft.com|202.54.1.2|/home/httpd|ftpnixuser
xiao123xiao123:~/Downloads$ cat ./ifstest.sh
file./file.csvIFS|
printf domain\t\tip\t\twebroot\t\tusername\n
while read -r domain ip webroot username;
doprintf %s\t%s\t%s\t%s\n ${domain} ${ip} ${webroot} ${username}
done ${file}
xiao123xiao123:~/Downloads$ bash ./ifstest.sh
domain ip webroot usernamecyberciti.biz 202.54.1.1 /home/httpd ftpcbzuser
nixcraft.com 202.54.1.2 /home/httpd ftpnixuser
xiao123xiao123:~/Downloads$shift命令
移动命令行参数默认命令shiftshift 1。 shift例子1
xiao123xiao123:~/Downloads$ cat shift.sh
echo 没有使用shift
echo 输入的参数数量: $#
echo $1 $2 $3是 $1, $2, $3
shift 2
echo 使用了shift2之后
echo 剩余输入的参数数量$#
echo $1 $2 $3是 $1, $2, $3
xiao123xiao123:~/Downloads$ bash ./shift.sh 11 22 33
没有使用shift
输入的参数数量: 3
$1 $2 $3是 11, 22, 33
使用了shift2之后
剩余输入的参数数量1
$1 $2 $3是 33, ,
xiao123xiao123:~/Downloads$shift例子2
xiao123xiao123:~/Downloads$ cat ./shift2.sh
until [ -z $1 ]
doecho $shift
done
xiao123xiao123:~/Downloads$ bash ./shift2.sh 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9
3 4 5 6 7 8 9
4 5 6 7 8 9
5 6 7 8 9
6 7 8 9
7 8 9
8 9
9
xiao123xiao123:~/Downloads$