期刊投稿维普 AI 率超标被退回?这样降到 10% 以内过初审
2026/7/10 8:11:11
Shell 是用户与 Linux 操作系统之间的命令行接口,本质是 “对 Linux 命令的逻辑化处理”,可接收并执行用户输入的命令,支持批处理,占用资源少、效率高。它与 GUI 并列,是操作系统的重要交互方式,主流版本为 Bash Shell。
touch helloworld.sh(扩展名.sh仅为标识,不影响执行);chmod +x helloworld.sh;vim编辑文件,首行#!/bin/bash指定 Shell 类型,echo为输出命令;bash
运行
#!/bin/bash echo "helloworld!" # # 开头为注释./helloworld.sh(需加./表示当前目录,避免系统在 PATH 中查找)。PATH、HOME、SHELL),用env命令查看,直接通过$变量名使用(如echo $HOME);变量名="值"(如name="SnailClimb");$变量名(如echo $name)。字符串是 Shell 核心数据类型,支持单引号、双引号包裹,操作灵活:
$、反引号)无特殊含义,原样输出;$(变量引用)、反引号(命令执行)、\(转义),其他符号原样输出。"hello, $name"),单引号需拼接变量('hello, '$name'');${#字符串}(如echo ${#name})或expr length "$字符串";${字符串:起始索引:长度}(如(${str:0:10}截取前 10 字符),或通过#/##/%/%%按匹配规则截取(如${var##*/}截取路径中文件名)。Bash 仅支持一维数组,无大小限制:
数组名=(元素1 元素2 ...)(如array=(1 2 3 4 5));${#数组名[@]}或${#数组名[*]};${数组名[索引]}(索引从 0 开始,如echo ${array[2]});unset 数组名[索引]删除指定元素,unset 数组名删除整个数组;for i in ${数组名[@]}; do echo $i; done。Shell 支持 6 类运算符,需通过特定格式使用:
+(加)、-(减)、*(乘,需转义\*)、/(除)、%(取余);expr命令(如val=expr $a + ),或((表达式))(如$((a*b))`)。-eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于等于)、-le(小于等于);if [ $a -eq $b ]; then ... fi。&&(与)、||(或),需用[[ ]]包裹(如[[ $a -lt 100 && $b -gt 50 ]]);=(相等)、!=(不等)、-z(长度为 0)、-n(长度非 0);-f(普通文件)、-d(目录)、-r(可读)、-w(可写)、-x(可执行)、-e(存在)(如if [ -f $file ]; then ... fi)。bash
运行
if [ 条件1 ]; then 执行语句1 elif [ 条件2 ]; then 执行语句2 else 执行语句3 fi[ ]包裹,运算符与变量间需空格。for 变量 in 列表; do 执行语句; done(如for loop in 1 2 3; do echo $loop; done);for((i=1; i<=5; i++)); do 执行语句; done。while(( 条件 )); do 执行语句; done(如while(( $int<=5 )); do echo $int; let "int++"; done);while true; do 执行语句; done;while read 变量; do 执行语句; done(需按CTRL-D退出)。bash
运行
函数名(){ 执行语句 } # 调用 函数名返回值通过return指定(仅支持数字),通过$?获取:
bash
运行
funWithReturn(){ return $((a+b)) } funWithReturn echo "结果:$?"$1-$n(第 1 到第 n 个参数)、$#(参数个数)、$*(所有参数拼接为字符串);bash
运行
funWithParam(){ echo "第一个参数:$1" echo "参数总数:$#" } funWithParam 1 2 3 # 调用时传入参数