用shell实现(Linux:用shell如何实现读取一个字符串的第n个字符呢)
本文目录
- Linux:用shell如何实现读取一个字符串的第n个字符呢
- shell实现SSH自动登陆
- shell脚本实现转圈、进度条等效果
- Mac上实现一个简单的shell脚本
- 如何用shell脚本实现自动telnet-snowtty-ChinaUnix博客
- 如何用shell脚本实现自动telnet
- 用shell实现100以内素数求和
- 怎么用shell实现,如果用户输入的不是yes/no,就继续提示让用户输入yes/no 不是Expect
- 在mysql中导入名为update.sql脚本,用shell实现,怎么写啊
Linux:用shell如何实现读取一个字符串的第n个字符呢
代码如下:
str="/home/gateman"
if ; then
echo "yes’
fi
${str:0:1} 中0表示从第几个字符开始,1表示截取多长。
Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本,常见的脚本解释器有:
bash:是Linux标准默认的shell。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。
sh: 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。
另外还有:ash、 csh、 ksh等。
扩展资料
Linux shell 截取字符变量的前8位:
实现方法有如下几种:
expr substr “$a” 1 8
echo $a|awk ‘{print substr(,1,8)}’
echo $a|cut -c1-8
echo $
expr $a : ‘\(.\\).*’
echo $a|dd bs=1 count=8 2》/dev/null
按照指定要求分割:
比如获取后缀名
ls -al | cut -d “.” -f2
小结:shell对应字符串的处理方法很多,根据需求灵活选择。
在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。
shell实现SSH自动登陆
注:需要执行权限,可通过 sudo chmod +x ./file_name.sh 添加 sh file_name.sh 就是指定了脚本解释器 /bin/sh 来解释执行脚本;常见的脚本解释器还有: /bin/bash 等,我们可以使用 ls -l /bin/*sh 命令来查看当前可用的脚本解释器; 这种方式不会像前两种方式一样fork一个子进程去执行脚本,而是使用当前shell环境执行。我们不必重启shell或者重新登录系统,就能使当前的更改生效。一般用于 .bashrc或者.bash_profile被修改的时候, 定义:我们写一个shell脚本时,总是习惯在最前面加上一行 #!/binbash ,它就是脚本的 shebang 。 作用:它指示了此脚本运行时的解释器,使用文件名直接执行shell脚本时,必须带上shebang。 使用:可以在shebang后面直接附加选项,执行时我们默认使用选项执行; 如 test.sh 的 shebang 为 #!/bin/sh -x ,那我们执行脚本时: ./test.sh hello 相当于: bin/sh -x ./test.sh hello ; 注意:在指定脚本解释器来执行脚本时,shebang会被指定的脚本解释器覆盖。 expect是一个能实现自动和交互式任务的解释器,它也能解释常见的shell语法命令,其特色在以下几个命令: spawn command 命令会fork一个子进程去执行command命令,然后在此子进程中执行后面的命令; 它的一般用法为 expect "string" ,即期望获取到string字符串,可在在string字符串里使用 * 等通配符; string 与命令行返回的信息匹配后,expect会立刻向下执行脚本; set timeout n 命令将expect命令的等待超时时间设置为n秒,在n秒内还没有获取到其期待的命令,expect 为false,脚本会继续向下执行; 一般用法为 send "string\r" , 向命令行输入一条信息, \r 表示输入回车; 创建脚本 touch aliyun_login_shell.sh ,内容如下: 执行 sudo chmod +x ./aliyun_login_shell.sh 命令给shell脚本添加执行权限; 运行 ./aliyun_login_shell.sh 命令,一键登陆成功! 优化一下: 脚本完成了,可是还是有些小瑕疵: 这里我们想到了linux的alias命令: 执行命令 vim ~./bash_profile ,在文件内部添加: 再使用 . ~./bash_profile 或 source ~./bash_profile 从此,我们无论在哪个目录,只要输入 alias_name 命令,回车,真正的一键登陆! 参考: ***隐藏网址***
shell脚本实现转圈、进度条等效果
开始shell光标闪烁 通过符号#填充完成进度 每个阶段有不同颜色区分进度 按照百分比显示进度 printf %3d为显示百分比预留了3位,循环条件i每次递增5主要是为了减少进度条显示的长度。 i每次递增5,取模之后的index值还是依次循环,保证了转圈圈的方向和频率。 改用其他数字,转圈的显示效果没有add=4n+1时的好。 进度条递进填充
Mac上实现一个简单的shell脚本
如何实现一个简单的shell脚本呢? (这里用到的命令工具是iTerm2) 直接上开始吧 cd到目标文件夹:$cd test 新建脚本$touch 123.sh 双击123.sh,里面写入: mkdir shell cd shell touch 123.txt 然后保存一下,此刻已经完成了一个简单的脚本(123.sh) 运行脚本的几种方式, 方式1: $bash 123.sh 方式2: $zsh 123.sh 方式3: $source 123.sh 其中方式3会进入脚本执行完毕的目录(shell) 方式4: $./123.sh 如果出现提示 ./123.sh: Permission denied 表示文件没权限执行 查看文件权限 $ls -l 123.sh 发现没有x,表示没有可执行权限,紧接着 给文件添加可执行权限,并再次查看文件权限,两条命令: ls -l 123.sh发现有x了,然后再执行./123.sh 发现shell文件夹已经被创建,123.txt也被创建 为了达到预期效果,每次执行脚本之前都应该先删除shell文件夹,否则会提示文件已存在
如何用shell脚本实现自动telnet-snowtty-ChinaUnix博客
Shell脚本自动Telnet并执行远端机器的脚本简单使用状况 #!/bin/sh(sleep 10;echo "username";sleep 10;echo "password";sleep 10;echo "pwd";sleep 50;#echo exit )|telnet $ip这里只是连接到远端机器,查看一下当前所在的目录。username/password 是telnet 到远端机器的用户名,密码sleep 是一个等待时间,根据具体的机器状况或是执行命令的需要的时间来设置。带变量使用
如何用shell脚本实现自动telnet
很多人认为telnet象passwd和su一样,无法通过管道和输入转向使其自动工作,但实际上telnet是支持输入转向的.虽然,严格的说,shell脚本无法使telnet进入交互状态,但它确实可你使你进入远程系统并运行你希望的命令后退出.这远比用rsh(remsh,rcmd)更令人放心,使用如下的脚本可以达到你的要求:(sleep 1;echo user;sleep 1; echo passwd;echo yourcmd ;sleep 1)|telnet remotehost其中user,passwd,yourcmd,remotehost分别更换成你的用户名,用户口令,你想要运行的命令,远程机器名或IP便可以了. 如果要想使用脚本进入交互状态,可以使用expect.如果你要通过telnet某个IP的端口来得到部分数据,则可以用以下命令(sleep 5;) | telnet IP PORT 这样就可以在telnet后将PORT在5秒内输出的数据打印到屏幕上,然后自动退出EG:tempValue="KEY"str4=`(sleep 1;echo AA;sleep 1; echo 123; sleep 1; echo tail -f /aa/log/a.log;sleep 1) | telnet ${IP} | grep ${tempValue}`num4=`echo ${#str4}`if ;thenecho "==::在a.log文件中没有找到关键字KEY,请检查!"sheet4="@NULL"elseecho "==::在a.log文件有找到关键字KEY!"sheet4="@OK"fi
用shell实现100以内素数求和
写了个 希望对你有帮助# more s.shu.sh sum=0num=$1for i in {2..10}do #echo $i flag=0 k=$(expr $i \/ 2) for (( j=2;j《=$k;j=j+1 )) do m=$(expr $i % $j) if then flag=1 break fi done if then sum=$(expr $sum + $i) fidoneecho $sum# sh sushu.sh 1710以内的素数之和是17.你可以根据需要将for i in {2..10} 改为for i in {2..100}本想以传参的方式求你输入的参数范围内的所有素数之和。但是遇到了一些问题。只好把范围写死。有时间再改进改进
怎么用shell实现,如果用户输入的不是yes/no,就继续提示让用户输入yes/no 不是Expect
1、首先打开linux系统,创建shell脚本文件,如下图所示。
2、然后使用bash解释器,如下图所示。
3、接着使用for语句循环,seq循环10 次,如下图所示。
4、接着创建用户,用i语句接受变量,然后创建用户密码,保存shell脚本,如下图所示。
5、最后修改脚本的权限,运行脚本,创建用户脚本就完成,如下图所示。
在mysql中导入名为update.sql脚本,用shell实现,怎么写啊
建立一个脚本:1、update.sql中如果指定某个库更新,需要先调用use db;,这个写在Update.sql里面。#!/bin/bash#Purpose import DBMysql_Pwd="yoursPwd"mysql/to/paht/mysql -u root -p$Mysql_Pwd -h localhost 《 path/to/update.sql或者2、#!/bin/bash#Purpose import DBMysql_Pwd="yoursPwd" cat 》 /tmp/import《《EOF use DB; source path/to/update.sql flush privileges; EOFmysql/to/paht/mysql -u root -p$Mysql_Pwd -h localhost 《 /tmp/importrm -f /tmp/import
更多文章:
git gui使用教程(如何使用 Git 和 GitHub)
2024年7月12日 11:55
peer to peer(peer to peer (P2P),grid大概是怎么一回事计算机网络方面的)
2024年6月3日 13:32
单片机编程数字代码(编程用单片机控制三个数码管显示数字520)
2024年7月7日 02:41
getremoteaddr(request.getRemoteAddr怎么获取用户真实的IP地址)
2024年7月20日 13:17
python培训教材ppt(python实训答辩ppt应该写什么)
2024年7月23日 12:04
formatdatetime语句(使用ASP显示系统时间的语句是什么)
2024年5月17日 07:26
estimate读音(打量度量计量度量中估量的量读音一样吗)
2024年6月13日 09:00
手机里的svg格式可以用什么软件打开(我想问一下svg格式可以用什么软件打开)
2024年7月23日 14:18
saas系统是什么意思(saas系统和传统的系统,该怎么选择)
2023年9月12日 00:00
in that(for that和in that有什么区别)
2024年5月8日 10:19
segmentation什么意思(Market Segmentation是什么意思)
2023年11月16日 04:00