终端打印

Posted tianzhiyun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了终端打印相关的知识,希望对你有一定的参考价值。

 

shebang是一个文本行,其中#!位于解释器路径之前。/bin/bashBash的解释器命令路径。 有两种运行脚本的方式。一种是将脚本作为bash的命令行参数,另一种是授予脚本执行权

限,将其变为可执行文件。 将脚本作为命令行参数时的运行方式如下(#号后面的文本是注释,不必输入到命令行中):

$ bash script.sh #假设脚本位于当前目录下 或者

$ bash /home/path/script.sh #使用script.sh的完整路径 如果将脚本作为bash的命令行参数来运行,那么就用不着脚本中的shebang了。

要是有需要的话,可以利用shebang来实现脚本的独立运行。对此必须设置脚本的可执行权 限,这样它就可以使用位于#!之后的解释器路径来运行了。就像这样:

    $ chmod a+x script.sh

该命令赋予所有用户script.sh文件的可执行权限。这个脚本能以下列方式执行: $ ./script.sh #./表示当前目录

 

$ /home/path/script.sh #使用脚本的完整路径 内核会读取脚本的首行并注意到shebang#!/bin/bash。它识别出/bin/bash并在内部像这

样执行该脚本:

    $ /bin/bash script.sh

当启动shell时,它一开始会执行一组命令来定义诸如提示文本、颜色等各类设置。这组命令 来自位于用户主目录中的脚本文件~/.bashrc(对于登录shell则是~/.bash_profile)。Bash还维护了一 个历史记录文件~/.bash_history,用于保存用户运行过的命令。

 

 

终端是交互式工具

echo 234;

echo ‘123‘;

echo "123";

前两种效果是一致的 直接打印原文

使用双引号会识别里面的特殊字符 需要使用转义字符进行转义

 $ echo "cannot include exclamation - ! within double quotes"

bash: !: event not found error

每种方法的副作用如下所述。

  • ?  使用不带引号的echo时,没法在所要显示的文本中使用分号(;),因为分号在Bash shell 中被用作命令定界符。

  • ?  echo hello;hello为例,echo hello被视为一个命令,第二个hello则被视为另一 个命令。

  • ?  变量替换在单引号中无效,在下一则攻略中会详细讨论。

 $ printf "Hello world"

printf使用引用文本或由空格分隔的参数。我们可以在printf中使用格式化字符串,还可以指 定字符串的宽度、左右对齐方式等。在默认情况下,printf并不像echo命令一样会自动添加换 行符,我们必须在需要的时候手动添加,比如在下面的脚本中:

#!/bin/bash #文件名: printf.sh

printf  "%-5s %-10s %-4s
" No Name  Mark
printf  "%-5s %-10s %-4.2f
" 1 Sarath 80.3456
printf  "%-5s %-10s %-4.2f
" 2 James 90.9989
printf  "%-5s %-10s %-4.2f
" 3 Jeff 77.564
我们会得到如下格式化的输出:
No Name   Mark   
1 Sarath  80.35  
2 James   91.00  
3 Jeff    77.56  

%-5s  是 格式替换符

 

思考 echo prinft 是不是可以 跟参数?


 

 

 

 

 

 

以上是关于终端打印的主要内容,如果未能解决你的问题,请参考以下文章

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

argparse 代码片段只打印部分日志

python 用于在终端中运行的sublime text 3的简单代码片段制作工具

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

python 一个终端代码片段,在mac上生成可启动的usb live CD,以运行类似ubuntu或debian的内容。

如何从 python 打印 \[ 和 \] 到终端?