千家信息网

shell语法是什么

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,今天就跟大家聊聊有关shell语法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。变量rz="hufei" # 定义静态变量date=
千家信息网最后更新 2024年12月12日shell语法是什么

今天就跟大家聊聊有关shell语法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

变量

rz="hufei"   # 定义静态变量date=`date`  # 赋值,动态变量echo $rz   # hufeiecho '$rz' # '$rz'   不能用echo "$rz"  # hufeiecho "'$rz'"  # 'hufei'echo '"$rz"'  #'$rz'  不能用echo `$rz`  # 报错echo $dateecho ${rz}addword  # 变量拼接总结: 字符串带上双引号,变量引用不要用单引号

传参

#!/bin/bash  # 生产中不一定是这一行echo "执行的文件名:$0";echo "第一个参数为:$1";echo "第二个参数为:$2";echo "第三个参数为:$3";echo "个数:$#" # 参数个数echo "传递参数作为一个字符:$*" #将所有参数拼为一个字符串echo "PID: $$" # shell进程pid,防止误kill./test.sh 1 2 3

调试

  • 执行时加上 -x 或者 #!/bin/bash -x

数组

arr=(hello world jike make you)echo ${arr} # 默认第一个echo ${arr[*]} # 所有的,按空格分开echo ${arr[4]} # 第四个echo ${#arr[*]} # 数组个数

判断

  • 方式1

if condition1then    command1elif condition2 then     command2else    commandNfi
  • 方式2(命令形式)

if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi

if案例

a="abc"b="abc"c=3# stringif [ $a == $b ]then        echo "a equal b"else        echo "a no equal b"fi# numif [ $c == $b ];then echo "c equal b";else echo "c not equal b";fi# 判断文件是否存在dir="/data/"file="/data/file"if [ ! -d $dir ];then echo "${dir}不存在";else echo "${dir}已存在";fiif [ ! -f $file ];then echo "${file}不存在";else echo "${file}已存在";fi参数说明:-d  判断对象是否存在,并且为目录-f  判断对象是否存在,并且为常规文件-s  判断对象是否存在,并且长度不为0-nt 判断file1是否比file2新  [ "/data/file1" -nt "/data/file2" ]

for循环

  • 方式1

for var in item1 item2 ... itemNdo    command1    command2    ...    commandNdone
for str in 'This is a string'do    echo $strdone
  • 方式2

for var in item1 item2 ... itemN; do command1; command2… done;

for循环获取分割字符串,以,为例

s="hello,world,hadoop,jike,ou"# 方法1OLD_IFS="$IFS"IFS=","arr=($s)IFS="$OLD_IFS"for x in ${arr[*]}do        echo $xdone# 方法2arr2=(${s//,/ })for x in ${arr2[*]}do        echo $xdone

while循环

while conditiondo    commanddone
#!/bin/bashint=1while(( $int<=5 ))do    echo $int    let "int++"done

case

case 值 in模式1)    command1    command2    ...    commandN    ;;模式2)    command1    command2    ...    commandN    ;;esac
echo '输入 1 到 4 之间的数字:'echo '你输入的数字为:'read aNumcase $aNum in    1)  echo '你选择了 1'    ;;    2)  echo '你选择了 2'    ;;    3)  echo '你选择了 3'    ;;    4)  echo '你选择了 4'    ;;    *)  echo '你没有输入 1 到 4 之间的数字'    ;;esac

函数

  • 示例1(无返回值)

#!/bin/bash# author:菜鸟教程# url:www.runoob.comdemoFun(){    echo "这是我的第一个 shell 函数!"}echo "-----函数开始执行-----"demoFunecho "-----函数执行完毕-----"
  • 示例2(有返回值)

#!/bin/bash# author:菜鸟教程# url:www.runoob.comfunWithReturn(){    echo "这个函数会对输入的两个数字进行相加运算..."    echo "输入第一个数字: "    read aNum    echo "输入第二个数字: "    read anotherNum    echo "两个数字分别为 $aNum 和 $anotherNum !"    return $(($aNum+$anotherNum))}funWithReturnecho "输入的两个数字之和为 $? !"
  • 示例3(接收参数)

#!/bin/bash# author:菜鸟教程# url:www.runoob.comfunWithParam(){    echo "第一个参数为 $1 !"    echo "第二个参数为 $2 !"    echo "第十个参数为 $10 !"    echo "第十个参数为 ${10} !"    echo "第十一个参数为 ${11} !"    echo "参数总数有 $# 个!"    echo "作为一个字符串输出所有参数 $* !"}funWithParam 1 2 3 4 5 6 7 8 9 34 73

包含文件

  • 包含文件可以用于封装公共文件

. filename   # 注意点号(.)和文件名中间有一空格或source filename
#!/bin/bash# author:菜鸟教程# url:www.runoob.com#使用 . 号来引用test1.sh 文件. ./test1.sh# 或者使用以下包含文件代码# source ./test1.shecho "菜鸟教程官网地址:$url"

看完上述内容,你们对shell语法是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

参数 文件 数字 输入 函数 变量 字符 教程 菜鸟教程 菜鸟 字符串 方式 选择 两个 个数 内容 对象 示例 循环 语法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发分支是什么意思 软件开发公司 必备认证 我家云停止超级硬盘后数据库 网络安全小贴士怎么用 署假网络安全专项 活动 磐云网络安全p10 图书管理数据库的组织结构图 软件开发即征即退超过3% 北京网络技术服务活动简介 我的世界送管理员的服务器 合肥最好的外贸数据库系统哪个好 广州汇宝商务中心软件开发公司 jsp数据库访问编程 ui在软件开发中的定位 bvd数据库使用费 数据库用中文会有什么问题 发电厂网络安全制度 甘肃专升本数据库操作试题 违反网络安全第二十七条处罚 舜宇软件开发作息时间 心理评测系统软件开发公司 网络安全教育ppt课件百度文库 软件开发组成 十种数据库管理系统网址 计算机网络技术能考建造师么 手机游戏总是显示无法连接服务器 电信宽带 虚拟服务器 安徽芜湖软件开发培训哪里好 河北计算机网络技术专升本院校 igxe服务器
0