千家信息网

shell语法是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关shell语法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。变量rz="hufei" # 定义静态变量date=
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 云南咖啡 中关村互联网 科技集团 科技金融是不是互联网金融 互联网扶贫科技 猪兼强互联网科技 电子科技大学互联网 融贸通互联网科技 互联网科技公司介绍 哈尔滨秒房互联网科技有限公司 玖二柒互联网科技公司待遇 互联网新科技动漫ppt素材 佛山市拉法互联网科技有限公司 互联网时代的科技公司 产业互联网科技服务公司 互联网安防科技感 互联网科技平台产品运营 中国互联网公司的科技投入 唐山双旺合互联网科技产业园 重庆科技产业互联网有哪些 科技发展第三阶段互联网时代 上海卓越科技互联网 高科技互联网 唐信互联网科技 大连 博兴的互联网电子科技公司 成都玖崟互联网科技有限公司乐商圈怎么样 互联网科技产品 互联网科技与大数据专业 互联网风格科技公司名称 广州梦谷互联网科技有限公司领导 知域互联网科技有限公司官网
0