Linux shell script programming All In One

Posted xgqfrms

tags:

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

Linux shell script programming All In One shell 脚本编程

Linux shell script programming All In One

shell 脚本编程

Linux 系统中登录 shell 的时候,会从下面的 5 个启动文件里读取命令;

# 系统级,所有登录用户都会先启动这个文件
$ cat /etc/profile

# 用户级,按照Linux 发行版中实际存在的文件个数,依次进行启动
$ cat $HOME/.bash_profile
$ cat $HOME/.bashrc
$ cat $HOME/.bash_login
$ cat $HOME/.profile

shell types

shell 类型 / shell 种类

# $ which shell

$ which bash
$ which sh
$ which zsh

系统 截图
Raspberry Pi
macOS

启动文件

  1. 系统的 shell 启动配置文件 /etc/profile
$ cat /etc/profile

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
fi
export PATH

if [ "$PS1-" ]; then
  if [ "$BASH-" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1=\'\\h:\\w\\$ \'
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "$(id -u)" -eq 0 ]; then
      PS1=\'# \'
    else
      PS1=\'$ \'
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi
# 配置文件目录 `/etc/profile.d`
$ ls -al /etc/profile.d
  1. 用户的 shell 启动配置文件 $HOME/.profile
$ cat $HOME/.profile
# 等价于
$ cd ~ && cat .profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user\'s private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user\'s private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

echo "每次登录自动执行脚本 ✅"
bash /home/pi/Desktop/ip-program.sh

demos

(

Linux08--Shell程序设计03 shell script

第一个Shell脚本——HelloWorld

[root@localhost ~]# vi sh01.sh
#!/bin/bash #!表明使用哪种shell
# this is my first shell script #注释部分

echo -e "hello world!"
exit 0

[root@localhost~]# sh sh01.sh   #使用bash或者sh命令执行sh文件
hello world!

第二个Shell脚本——从终端接收用户输入到变量中

  

第三个Shell脚本——从终端接收用户输入的文件名创建新文件

date命令    +%Y%m%d 是参数 ,命令之后的参数除了前面带有减号的,某些情况下,参数前面也会带有正号‘+’的情况

在一串命令中,还需要通过其他的命令提供的信息,可以使用``反单引号 或者 $()

执行sh sh03.sh

第四个shell脚本 ---数值运算

•shell脚本中的数值运算只支持整数的运算;
•shell脚本中变量都默认为字符串,所以如果希望变量进行数值运算有如下两种办法:
第一种是使用$((数值表达式)),如$(($first+$last))
•第二种将变量声明为整型:declare –i total=数值表达式
sum=$(($first+$second))
 
 
 

以上是关于Linux shell script programming All In One的主要内容,如果未能解决你的问题,请参考以下文章

Linux08--Shell程序设计03 shell script

鸟哥的 Linux 私房菜Shell Scripts篇

鸟哥的 Linux 私房菜Shell Scripts篇

Linux的shell scripts

Linux的shell scripts的shell脚本练习

鸟哥的Linux私房菜-----12学习使用Shell scripts