活动介绍
file-type

Shell编程入门:特殊符号与命令解析

PPT文件

下载需积分: 1 | 270KB | 更新于2024-08-25 | 85 浏览量 | 0 下载量 举报 收藏
download 立即下载
"Shell编程基础与特殊符号的使用" 在计算机科学中,Shell是一个重要的组成部分,它作为用户与操作系统之间的桥梁,允许用户通过命令行界面执行各种操作。在Unix和Linux系统中,常用的Shell有bash(Bourne-Again SHell)、sh(Bourne Shell)、ksh(Korn Shell)和csh(C Shell)。而在Windows系统中,有CMD.exe和PowerShell。Shell不仅是一个命令解释器,它还是一种编程语言,提供了循环、分支等控制结构,使得用户能够编写脚本自动化执行一系列命令。 在Shell编程中,特殊符号起着至关重要的作用。这些符号用于控制命令的执行、变量的扩展和流程控制。以下是一些常见的特殊符号及其用途: 1. 引号:在Shell中,引号用于防止参数扩展。例如,如果使用双引号 `" "` 或单引号 `' '` 将包含通配符或变量的字符串括起来,Shell将不会对它们进行扩展。例如,在描述中的例子中,如果有两个jpg文件,`"*.jpg"` 会被扩展为 `mail.jpg tux.jpg`,但若使用引号包围,`"*.jpg"` 就会被当作一个整体传递给命令,不会进行文件匹配。 2. 通配符:如 `*` 和 `?`,用于匹配多个或单个任意字符。例如,`*.txt` 匹配所有以 `.txt` 结尾的文件。 3. 变量:在Shell中,变量的赋值通常用等号 `=`,如 `VAR=value`。引用变量时,不加引号的情况下,Shell会尝试扩展变量值,而加引号则保持变量原样。 4. 操作符: - 分支控制:`if-then-else-fi` 语句用于条件判断,`case` 语句用于多分支选择。 - 循环控制:`for` 循环、`while` 循环和 `until` 循环用于重复执行某些命令。 - 逻辑运算符:`&&` 和 `||` 分别表示逻辑与和逻辑或,常用于命令链,当前一个命令成功(返回值0)时执行下一个命令,或当前一个命令失败(非0返回值)时执行下一个命令。 - 重定向:`>` 用于覆盖输出,`>>` 用于追加输出,`<` 用于输入重定向,`|` 用于管道,将一个命令的输出作为另一个命令的输入。 5. 函数:Shell允许定义和调用函数,提高代码复用性。 6. 脚本执行权限:通过 `chmod +x script.sh` 给脚本添加执行权限,然后可以用 `./script.sh` 来运行。 7. I/O重定向:`<`, `>`, `>>`, `2>`, `2>&1` 等符号用于改变命令的标准输入、输出和错误输出。 8. 命令别名:通过 `alias` 命令可以创建自定义的命令别名,简化常用命令的输入。 9. 函数和子Shell:Shell支持函数定义,用于封装命令序列。子Shell(如 `(commands)`)用于在一个新的环境中执行命令,其变量和状态不会影响父Shell。 了解并熟练掌握这些Shell特殊符号和概念,能够极大地提升你在终端的效率,让你更加灵活地管理和控制操作系统。无论是日常使用还是编写自动化脚本,Shell都是一个强大且不可或缺的工具。

相关推荐

filetype

@echo off rem @echo %cd% rem @echo %~d0 rem @echo %~dp0 rem @echo %~df0 set MD_BOOT_HOME=%~dp0 set CONFIG_ROOT=%MD_BOOT_HOME%server\config\platform set LIBS_ROOT=%MD_BOOT_HOME%server\runtime rem set JAVA_HOME_PR=%~dp0jstack echo MD_BOOT_HOME: %MD_BOOT_HOME% echo %1 echo %2 set MD_BOOT_ARCH=%PROCESSOR_ARCHITECTURE% rem @echo %MD_BOOT_ARCH% set MD_BOOT_OS_KERNEL=win rem @echo %MD_BOOT_OS_KERNEL% @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :error set ERROR_CODE=1 @REM Set JAVA_HOME=%JAVA_HOME_PR%\runtime\java\%MD_BOOT_ARCH%-%MD_BOOT_OS_KERNEL% :OkJHome echo Checking java home: %JAVA_HOME% if exist "%JAVA_HOME%\bin\java.exe" goto doJob :doJob @setlocal enabledelayedexpansion for /r "%MD_BOOT_HOME%\" %%k in (lcm-metadata-shell*.jar) do ( @set MD_BOOTSTRAP="%%k" ) for /r "%MD_BOOT_HOME%server\platform\dev\main" %%k in (*.jar) do set MAIN_JAR=%%k echo Checking MD bootstrap: %MD_BOOTSTRAP% echo "%JAVA_HOME%\bin\java" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar %MD_BOOTSTRAP% %* "%JAVA_HOME%\bin\java" -Dloader.path="%MD_BOOT_HOME%server/platform/common;%LIBS_ROOT%/libs;%LIBS_ROOT%/3rd" ^ -Dspring.config.additional-location="%CONFIG_ROOT%/common/;%CONFIG_ROOT%/dev/" ^ -jar %MD_BOOTSTRAP% %* pause有没有不合理的地方,帮我改一下

filetype

@echo off rem @echo %cd% rem @echo %~d0 rem @echo %~dp0 rem @echo %~df0 set MD_BOOT_HOME=%~dp0 set CONFIG_ROOT=%MD_BOOT_HOME%server\config\platform set RUNTIME_ROOT=%MD_BOOT_HOME%server\runtime set PLATFORM_ROOT=%MD_BOOT_HOME%server\platform rem set JAVA_HOME_PR=%~dp0jstack echo MD_BOOT_HOME: %MD_BOOT_HOME% echo %1 echo %2 set MD_BOOT_ARCH=%PROCESSOR_ARCHITECTURE% rem @echo %MD_BOOT_ARCH% set MD_BOOT_OS_KERNEL=win rem @echo %MD_BOOT_OS_KERNEL% @REM ==== START VALIDATION ==== if not "%JAVA_HOME%" == "" goto OkJHome echo. echo Error: JAVA_HOME not found in your environment. >&2 echo Please set the JAVA_HOME variable in your environment to match the >&2 echo location of your Java installation. >&2 echo. goto error :error set ERROR_CODE=1 @REM Set JAVA_HOME=%JAVA_HOME_PR%\runtime\java\%MD_BOOT_ARCH%-%MD_BOOT_OS_KERNEL% :OkJHome echo Checking java home: %JAVA_HOME% if exist "%JAVA_HOME%\bin\java.exe" goto doJob :doJob @setlocal enabledelayedexpansion for /r "%MD_BOOT_HOME%\" %%k in (lcm-metadata-shell*.jar) do ( @set MD_BOOTSTRAP=%%k ) echo Checking MD bootstrap: %MD_BOOTSTRAP% echo "%JAVA_HOME%\bin\java" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar %MD_BOOTSTRAP% %* echo %PLATFORM_ROOT%\common\libs\ echo %PLATFORM_ROOT%\dev\main\libs\ echo %RUNTIME_ROOT%\libs\ echo %RUNTIME_ROOT%\3rd\ echo %MD_BOOT_HOME%lib\ echo %CONFIG_ROOT%\common\ echo %CONFIG_ROOT%\dev\main\ echo %MD_BOOTSTRAP% "%JAVA_HOME%\bin\java" ^ -Dloader.path="%PLATFORM_ROOT%\common\libs\*;%PLATFORM_ROOT%\dev\main\libs\*;%RUNTIME_ROOT%\libs\*;%RUNTIME_ROOT%\3rd\*;%MD_BOOT_HOME%lib\*" ^ -Dspring.config.additional-location="%CONFIG_ROOT%\common\*;%CONFIG_ROOT%\dev\main\*" ^ -jar "%MD_BOOTSTRAP%" %* pause接上一个问题,你看还有啥问题

清风杏田家居
  • 粉丝: 27
上传资源 快速赚钱