替代是什么?
Shell当它遇到一个表达式,其中包含一个或多个特殊字符进行替代。
例子:
下面的例子,同时使打印取代的其值的变量的值。同时“\n”是一个新行取代:
#!/bin/sh
a=10
echo -e "Value of a is $a \n"
这将产生下面的结果。这里-e选项可以解释反斜杠转义。
Value of a is 10
下面是结果没有-e选项:
Value of a is 10\n
这里echo命令可以用在以下转义序列:
转义
描述
\\
|
backslash |
\a
|
alert (BEL) |
\b
|
backspace |
\c
|
suppress trailing newline |
\f
|
form feed |
\n
|
new line |
\r
|
carriage return |
\t
|
horizontal tab |
\v
|
vertical tab |
可以使用-E选项禁用解释反斜杠转义(默认)。
您可以使用-n选项来禁用插入新行。
命令替换:
命令替换shell执行的机制,一组给定的命令,然后替代它们的输出在命令。
语法
执行命令替换的命令时,被给定为:
`command`
当执行命令替换,确保您使用的是反引号,不是单引号字符。
例子:
命令替换一般是用一个命令的输出分配给一个变量。下面的例子演示命令替换:
#!/bin/sh
DATE=`date`
echo "Date is $DATE"
USERS=`who | wc -l`
echo "Logged in user are $USERS"
UP=`date ; uptime`
echo "Uptime is $UP"
这将产生以下结果:
Date is Thu Jul 2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul 2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15
变量替代:
变量替换可使Shell程序员操纵变量的值,根据其状态。
这里是所有可能的替换如下表:
格式
描述
${var}
|
Substitue the value ofvar. |
${var:-word}
|
Ifvaris null or unset,wordis substituted forvar. The value ofvardoes not change. |
${var:=word}
|
Ifvaris null or unset,varis set to the value ofword. |
${var:?message}
|
Ifvaris null or unset,messageis printed to standard error. This checks that variables are set correctly. |
${var:+word}
|
Ifvaris set,wordis substituted for var. The value ofvardoes not change. |
例子:
下面的例子显示各种状态,上述替代:
#!/bin/sh
echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}"
echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}"
unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var"
var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var"
echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"
这将产生以下结果:
Variable is not set
1 - Value of var is
Variable is not set
2 - Value of var is Variable is not set
3 - Value of var is
This is default value
4 - Value of var is Prefix
Prefix
5 - Value of var is Prefix
分享到:
相关推荐
lorri是nix-shell替代品,基于快速direnv集成,可实现强大的CLI和编辑器集成
SSH Secure Shell Client是一个用来替代TELNET、FTP以及R命令的数据加密工具,进行ssh 下载主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写...
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working ...
最近在利用shell帮公司优化挖掘关键词的流程,用shell替代了多个环节的操作,极大提高了工作效率。下面这篇文章就给大家分享了利用shell实现两个文件去重的多种姿势,有需要的朋友们可以参考借鉴,下面来一起看看吧...
BBClean 是一款可以替代explorer的windows shell 程序,是个Launcher管理器,开源。高度可定制,所以自由;可以自制主题,所以漂亮;程序占用内存极低,低到什么程度?600KB。软件小巧不足1MB。 这是我配置的大图标...
Closh结合了传统的unix shell和Clojure的强大功能。 它旨在成为bash的现代替代品。
何用Python代替Bash脚本指南
lorri是项目开发的Nix nix-shell替代品。 lorri基于快速direnv集成,可实现强大的CLI和编辑器集成。 :backhand_index_pointing_right: ,了解lorri在日常开发以及频道更新和Nix垃圾回收等常见情况下如何改善nix-...
在RT_Thread中进行调试和维护时,常常需要与单片机进行交互,获取,设置某些参数或执行某些操作, nr_micro_shell正是为满足这一需求,针对资源替代的MCU编写的基本命令行工具。组件中已经提供了强大的完成日常...
洛里https://github.com/nix-community/lorrilorri 是项目开发的nix-shell替代品。lorri 基于快速 direnv 集成,以实现强大的 CLI 和编辑器集成。:backhand_index_pointing_right:查看我们的博客文章,了解 lorri ...
用junk替代rm功能,删除时不直接删除,而是将待删除内容移动到/trash目录中。要求:①junk默认只能删除文件不能删除目录,而且若无法删除时要给出相应信息;②提供-r选项,通过-r可以递归删除目录;③-f选项:直接...
ssh secure shell client是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,...
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的...
如果你是习惯于Windows命令提示符的IT人,当你第一次使用Linux命令行时,一定会感到无所适从。...一种替代方案是利用强大的Linux外壳命令编写shell脚本,让你在Linux下也能用DOS命令。本文将为大家具体介绍。
发掘Scons——替代Make的Python工具:Scons是用Python实现的一款跨平台的开源Build Tool,用Python实现意味着Scons比Make所使用的类Shell语言更贴近于自然语言,更易于理解和控制;用Python实现的另一个好处也是Make...
GitLab Shell不是Unix Shell,也不是Bash或Zsh的替代品。 当您通过SSH访问GitLab服务器时,GitLab Shell将: 将您限制为预定义的git命令(git push,git pull)。 调用GitLab Rails API来检查您是否被授权以及您...
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。连接Linux操作系统的必备工具。
SOLID46、VISCO88、VISCO89、SHELL91、SHELL93、SHELL99、VISCO106、VISCO107、VISCO108和SOLID191。其中VISCO106、VISCO107、VISCO108已被ANSYS12彻底淘汰,其余单元还可以使用,但是建议使用其替代单元。 替代...