查看“Shell”的源代码
←
Shell
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
=== 简介 === ==== 什么是 shell ==== * Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 * Shell 既是一种命令语言,又是一种程序设计语言。 * Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问 Linux 内核的服务。 ==== 什么是 shell 脚本 ==== Shell 脚本(shell script),是一种为 shell 编写的脚本程序,一般文件后缀为 <code>.sh</code>。 ==== shell 环境 ==== ==== 模式 ==== ===== 交互模式 ===== ===== 非交互模式 ===== === 基本语法 === ==== 解释器 ==== ==== 注释 ==== ==== echo ==== echo 用于字符串的输出。 * 输出普通字符串:<syntaxhighlight lang="shell"> echo "hello, world" # Output: hello, world </syntaxhighlight> * 输出含变量的字符串:<syntaxhighlight lang="shell"> name=xiaoming echo "hello, \"${name}\"" # Output: hello, "xiaoming" </syntaxhighlight> * 输出含换行符的字符串:<syntaxhighlight lang="shell"> # 输出含换行符的字符串 echo "YES\nNO" # Output: YES\nNO echo -e "YES\nNO" # -e 开启转义 # Output: # YES # NO </syntaxhighlight> * 输出含不换行符的字符串:<syntaxhighlight lang="shell"> echo "YES" echo "NO" # Output: # YES # NO echo -e "YES\c" # -e 开启转义 \c 不换行 echo "NO" # Output: # YESNO </syntaxhighlight> * 输出重定向至文件:<syntaxhighlight lang="shell"> echo "test" > test.txt </syntaxhighlight> * 输出执行结果:<syntaxhighlight lang="shell"> echo `pwd` # Output:(当前目录路径) </syntaxhighlight> ==== printf ==== printf 用于格式化输出字符串。 printf 命令的语法: printf format-string [arguments...] 参数说明: * '''format-string:''' 为格式控制字符串 * '''arguments:''' 为参数列表。 默认,printf 不会像 echo 一样自动添加换行符,如果需要换行可以手动添加 <code>\n</code>。 === 变量 === 跟许多程序设计语言一样,你可以在 bash 中创建变量。 bash 中没有数据类型,bash 中的变量可以保存一个数字、一个字符、一个字符串等等。同时无需提前声明变量,给变量赋值会直接创建变量。 ==== 变量命名原则 ==== * 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 * 中间不能有空格,可以使用下划线(_)。 * 不能使用标点符号。 * 不能使用 bash 里的关键字(可用 help 命令查看保留关键字)。 ==== 声明变量 ==== 访问变量的语法形式为:<code>${var}</code> 和 <code>$var</code> 。 变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,所以推荐加花括号。<syntaxhighlight lang="shell"> word="hello" echo ${word} # Output: hello </syntaxhighlight> ==== 只读变量 ==== 使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。<syntaxhighlight lang="shell"> rword="hello" echo ${rword} readonly rword # rword="bye" # 如果放开注释,执行时会报错 </syntaxhighlight> ==== 删除变量 ==== 使用 unset 命令可以删除变量。变量被删除后不能再次使用。unset 命令不能删除只读变量。<syntaxhighlight lang="shell"> dword="hello" # 声明变量 echo ${dword} # 输出变量值 # Output: hello unset dword # 删除变量 echo ${dword} # Output: (空) </syntaxhighlight> ==== 变量类型 ==== * '''局部变量''' :局部变量是仅在某个脚本内部有效的变量。它们不能被其他的程序和脚本访问。 * '''环境变量''' :环境变量是对当前 shell 会话内所有的程序或脚本都可见的变量。创建它们跟创建局部变量类似,但使用的是 <code>export</code> 关键字,shell 脚本也可以定义环境变量。 常见的环境变量: {| class="wikitable" !变量 !描述 |- |<code>$HOME</code> |当前用户的用户目录 |- |<code>$PATH</code> |用分号分隔的目录列表,shell 会到这些目录中查找命令 |- |<code>$PWD</code> |当前工作目录 |- |<code>$RANDOM</code> |0 到 32767 之间的整数 |- |<code>$UID</code> |数值类型,当前用户的用户 ID |- |<code>$PS1</code> |主要系统输入提示符 |- |<code>$PS2</code> |次要系统输入提示符 |} === 字符串 === ==== 单引号和双引号 ==== ==== 拼接字符串 ==== ==== 获取字符串长度 ==== ==== 截取子字符串 ==== ==== 查找子字符串 ==== === 数组 === ==== 创建数组 ==== ==== 访问数组元素 ==== ==== 访问数组长度 ==== ==== 向数组中添加元素 ==== ==== 从数组中删除元素 ==== === 运算符 === ==== 算术运算符 ==== ==== 关系运算符 ==== ==== 布尔运算符 ==== ==== 逻辑运算符 ==== ==== 字符串运算符 ==== ==== 文件测试运算符 ==== === 控制语句 === ==== 条件语句 ==== ==== if ==== ==== if else ==== ==== if elif else ==== ==== case ==== === 循环语句 === ==== for循环 ==== ==== while循环 ==== ==== until循环 ==== ==== select循环 ==== ==== break和continue ==== === 函数 === ==== 位置参数 ==== ==== 函数处理参数 ====
返回至“
Shell
”。
导航菜单
个人工具
登录
名字空间
页面
讨论
变体
视图
阅读
查看源代码
查看历史
更多
搜索
导航
-==扬==-
-==帆==-
-==起==-
-==航==-
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息