shift 命令使用方法 | 学习笔记

简介: 快速学习 shift 命令使用方法

开发者学堂课程【Shell 编程入门到精通shift 命令使用方法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/453/detail/5600


shift 命令使用方法

内容介绍

一、linux 执行脚本报错

二、shift 命令使用方法

一、linux 执行脚本报错

windows 中脚本导入到 Linux 系统后执行报错,因为 Windows Linux 处理机制不一样,vim 可以打开但不能运行,解决如下,安装包,例:

[root@xuegod63 test]# ./v2.sh

bash: ./v2.sh: /bin/bash^M: bad interpreter: No such file or directory

[root@xuegod63 test]# rpm -ivh /mnt/Packages/dos2unix- 3.1-37.el6.x86_ 64.rpm.

[root@xuegod63 test]# dos2unix v2.sh

dos2unix: converting file v2.sh to UNIX format ....

[root@xuegod63 test]# ./v2.sh

********

1 Copy

2 Delete

3 Backup

4 Quit

********

执行成功,输入1执行拷贝,将/etc/passwd文件拷贝到/tmp下,例:

1

You selection is Copy

Please input source dircetory or file.

/etc/ passwd

Please input destination dircetory

/tmp

The files have been susscessfully copied.

Press any key to continue

查看文件是否拷贝成功,例:

[ root@xuegod63 test]# ls/ tmp/ passwd

/ tmp/ passwd

拷贝成功,按任意键清屏,输入2进行删除操作,例:

2

You selection is delete

Delete the file or dircetory.

/ tmp/ passwd

Proceed with removal ? y

y

sussessfully delete!

Press any key to continue. . .

查看文件是否删除成功,例:

[ root@xuegod63 test]# ls / tmp/passwd

ls: cannot access /tmp/ passwd: No such file or directory

删除成功。

执行4退出,显示 Exit…

 

二、shift 命令使用方法

Shift:参数左移指令:

每执行一次,参数序列顺次左移一个位置, $#的值会减1 ,用于分别处理每个参数,移出去的参数,不再可用。

当执行完一次 shift 时,$1值会减1,另外移除的参数会把$1移除,$2就会变成$1,$3变成$2,$4变成$3,如图,

image.png

例子:

做一个加法计算器,求出所有参数的和

实现的思路:

: 12+12+1 +1

$#一共有4个参数,但有时候不清楚有几个参数,也不确定用户输入语句有多长,这时候可以把$#当成一个判断语句,只要$#> 0,就求值 sum=sum+$1,进行累加,在循环里面写入shift,每执行一次加$1,直到$#<0为止。

[ root@xuegod63 test]#vim shift.sh

#!/bin/bash

if[$#-le 0]

then

echo “err! : Not enough pa rameters”

exit 124

fi

sum=0

while[$# -gt 0]

do

sum=expr $sum +$1’

shift

done

echo $sum

[ root@xuegod63 test]# ./shift.sh

此时执行会报错,可以复制报错的 err!vim 打开脚本查找 err!报错,可知报错原因为没有参数,应该多几个参数,例:

[ root@xuegod63 test]# ./shift.sh 12 12 1

25

脚本代码分析为,如果程序报错,则打印 err,执行 exit 并返回值124,否则 sum做加$1,直到$#<0done,输出 sum 值。

相关文章
|
C++ Python
VS Code按住ctrl不能跳转到定义/函数(Python)
VS Code按住ctrl不能跳转到定义/函数(Python)
2438 0
VS Code按住ctrl不能跳转到定义/函数(Python)
Ctrl + R,idea替换重复选项的写法,选中CC,W
Ctrl + R,idea替换重复选项的写法,选中CC,W
LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句
LINUX下用CTRL+R快速搜索HISTORY历史命令,快速索引到之前使用过的命令行语句
|
4月前
|
NoSQL Linux C语言
gdb基本使用快捷键
1. gdb简介 gdb是Linux下的代码调试工具。 程序的发布有debug模式和release模式,Linux的gcc/g++模式,默认是release模式。若想在Linux下调试,程序必须为debug模式。使用:
87 0
|
Unix Linux Shell
shift 命令使用方法 | 学习笔记
快速学习 shift 命令使用方法
167 0
shift 命令使用方法 | 学习笔记
|
IDE Unix Linux
shift命令使用方法 | 学习笔记
快速学习shift命令使用方法
shift命令使用方法 | 学习笔记
|
Ubuntu
tmux简介(附修改前缀键ctrl+a的方法)
tmux可以做到类似分屏的功能,而且在终端连接非正常断开时,tmux的进程不会被杀,从而保留了在tmux中正在编辑的代码等 tmux可以开多个session,一个session可以包含多个window,而一个window可以包含多个pane。简而言之,终端中“分屏”出来的一个个小窗口就是一个pane,整一个终端的大窗口就是一个window。
2785 0
|
Python
Python配置tab自动补全功能
# cat tab.py #!/usr/bin/python # python tab file import sys import readline import rlcompleter import atexit import os # tab completion readline.
2049 0