Linux命令行与shell脚本(7)--创建基本脚本文件

时间:2022-09-02 19:50:59

使用多个命令

  • 如果要两个命令一起运行,可在同一提示行输入,用分号分割

    date;who

创建shell脚本文件

  • hello word


    #!/bin/bash

    date
    who

显示消息

    #!/bin/bash
echo The time and date are:
date
echo "Let's the user is:"
who
echo -n The time and date are: #在同一行显示
date
echo "User info for userid:$USER" #User info for userid:chenhong
echo "User info for userid:${USER}" #User info for userid:chenhong
echo "The cost of the item is \$15" #The cost of the item is $15

使用变量

  • 可以使用set查看当前进程的环境变量
  • shell变量区分大小写
  • shell脚本中最有用的特性之一就是反引号 `,反引号允许你将shell命令的输出赋值给变量

    today=`date +%y%m%d`;
    ls -al /usr/bin/ > log.$today;
  • 输出重定向符 >会覆盖已存在文件, >> 会追加文件内容
  • 输入重定向符号 < 右边指定文件, << 在命令行输入内容,需要指定结尾符

管道

  • 管道可用于连接命令,comand1 | comand2,不要以为管道链接会一个一个地运行。Linux系统实际上会同时运行这两个命令,在系统内部将它们连接起来。第一个命令产生输出的同时,输出会被立即发送给第二个命令

执行数学运算

  • 可以使用美元符号和方括号($[ operation])将数据表达式圈起来

    var1=100;
    var2=50;
    var3=45;
    var4=$[$var1 * ($var2-$var3)];
    echo "The final is ${var4}" #The final is 500
  • bash shell数学运算只支持整数运算
  • 可以使用bc解决浮点数的运算问题

    “`

demo1

var1=100;
var2=45;
var3=echo "scale=4; $var1 / $var2" | bc;
echo The answer for this is $var3; #The answer for this is 2.2222

demo2

var1=10.46;
var2=43.67;
var3=33.2;
var4=71;
var5=bc << EOF
scale = 4
a1=($var1 * $var2)
b1=($var3 * var4)
a1+b1
EOF

echo The answer for this is $var5; #The answer for this is 456.7882
“`

退出脚本

  • Linux提供了$?专属变量来保存上一个执行的命令的退出状态码。你必须在你要查看的命令之后马上查看或使用$?变量。它的值会变成shell中执行的最后一条命令的退出状态码
  • exit命令允许你在脚本结束时,指定一个退出状态码。(状态码最大不超过255)
#!/bin/bash
var1=10;
var2=30;
var3=$[ $var1 + $var2 ]
echo The answer is $var3
#exit 5 #5
exit $var3 #40