- 浏览: 311152 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liuyong19832011:
,赞一个
Java通过BufferedWriter追加内容到文件末尾的几种常用方法 -
justjavac:
总结很好,怎么没人支持呢?最近发现iteye踩贴现象很严重。
shell数组的使用
http://zsq311.blog.163.com/blog/static/3766791200992934447914/
windows批处理程序中的pause命令可以实现“按任意键继续”的效果,要在shell中实现这一功能,可以借助read。
注意:
注意不是所有的shell提供的read都支持本文介绍的方法。目前本文已确定适用于bash。
简单实现
你可能还没注意到read的强大功能,其实只要用下面的代码,就可以实现简单的"pause"。
read -n 1 -p "Press any key to continue..."
但它有明显的不足:
如果用户输入的不是回车,虽然能"continue",但没有输出换行,导致输出格式混乱。(直接在命令提示符下运行更为突出)。
用户输入的字符会显示在屏幕上,影响美观。
如果进行了输入重定向,哪怕有:
while read line
do
…
read -p somevar
…
done < somefile这样的代码,都会导致错误。
改进
关于重定向引发的错误,如果需要,可以用文件描述符代替重定向解决。目前没有想到更好的解决方案。主要针对前两个不足做了改进。
read -n 1 -p "Press any key to continue..." INP
if [[ $INP != '' ]] ; then
echo -ne '\b \n'
fi说明:
记录了输入的字符(存到$INP),以便处理。
注意如果输入的是回车,read一个字符也读到,而不是读到\n。
当输入不是换行时,用退格盖掉原来的空格。
为了方便使用,可以写成:
#! /bin/bash
function pause(){
read -n 1 -p "$*" INP
if [[ $INP != '' ]] ; then
echo -ne '\b \n'
fi
}
#使用时:
pause 'Press any key to continue...'仍存有的问题:
对空格和Tab支持不好。
重定向的问题没有解决。
参考资料
http://www.cyberciti.biz/tips/linux-unix-pause-command.html
取自"http://www.linux-wiki.cn/index.php?title=%E7%94%A8shell%E5%AE%9E%E7%8E%B0bat%E7%9A%84pause&variant=zh-cn"
1个分类: Shell技巧
windows批处理程序中的pause命令可以实现“按任意键继续”的效果,要在shell中实现这一功能,可以借助read。
注意:
注意不是所有的shell提供的read都支持本文介绍的方法。目前本文已确定适用于bash。
简单实现
你可能还没注意到read的强大功能,其实只要用下面的代码,就可以实现简单的"pause"。
read -n 1 -p "Press any key to continue..."
但它有明显的不足:
如果用户输入的不是回车,虽然能"continue",但没有输出换行,导致输出格式混乱。(直接在命令提示符下运行更为突出)。
用户输入的字符会显示在屏幕上,影响美观。
如果进行了输入重定向,哪怕有:
while read line
do
…
read -p somevar
…
done < somefile这样的代码,都会导致错误。
改进
关于重定向引发的错误,如果需要,可以用文件描述符代替重定向解决。目前没有想到更好的解决方案。主要针对前两个不足做了改进。
read -n 1 -p "Press any key to continue..." INP
if [[ $INP != '' ]] ; then
echo -ne '\b \n'
fi说明:
记录了输入的字符(存到$INP),以便处理。
注意如果输入的是回车,read一个字符也读到,而不是读到\n。
当输入不是换行时,用退格盖掉原来的空格。
为了方便使用,可以写成:
#! /bin/bash
function pause(){
read -n 1 -p "$*" INP
if [[ $INP != '' ]] ; then
echo -ne '\b \n'
fi
}
#使用时:
pause 'Press any key to continue...'仍存有的问题:
对空格和Tab支持不好。
重定向的问题没有解决。
参考资料
http://www.cyberciti.biz/tips/linux-unix-pause-command.html
取自"http://www.linux-wiki.cn/index.php?title=%E7%94%A8shell%E5%AE%9E%E7%8E%B0bat%E7%9A%84pause&variant=zh-cn"
1个分类: Shell技巧
发表评论
-
[转]Linux文件查找命令find,xargs详述
2013-04-25 17:14 1014http://www.cnblogs.com/serendip ... -
Shell编程中Shift的用法[转]
2013-04-25 17:02 994[转]:http://www.cnblogs.com/imag ... -
ANT 执行SHELL脚本
2013-03-20 09:20 5318ANT 执行SHELL脚本 solaris环境 [1]vi ... -
shell数组使用技巧(转载)
2013-03-16 00:25 704转自:http://www.cnblogs.com ... -
eval学习与应用
2013-04-25 17:09 1090eval的作用是再次执行命 ... -
awk使用经验
2013-03-14 16:37 01. 统计列数。 FIELD_NUM=`cat "$ ... -
【转】用shell生成简单格式的xml
2013-02-25 21:53 2134http://blog.csdn.net/dengzhaoqu ... -
shell数组的使用
2012-08-31 10:40 1482B shell #!/bin/bash #set -x ... -
在sed中使用变量 通常,我们使用sed进行变量替换的时候,替换和被替换变量都是hard-coded的。例如: sed -n ‘/comm/p’ /tmp/
2012-07-17 10:44 2534在sed中使用变量 通常,我们使用sed进行变量替换的时候, ... -
shell中的文件分类、合并和切割
2012-06-29 09:45 3319sort用法 s o r t命令选项很长,下面仅介绍各种选项。 ... -
shell合并两个文件(列)
2012-06-29 09:45 11321题目如下: file1. 1 2 2 3 3 4 4 ... -
shell中cut命令的使用方法
2012-06-28 22:23 1870cut命令是用来剪下文本文件里的数据,文本文件可以是字段类型或 ... -
shell合并两个文件
2012-06-28 16:48 1169file1. 1 2 2 3 3 4 4 5 5 6 ... -
read读入分隔符
2012-06-28 08:49 1324$ cat 1.txt 1,a 2 ... -
sort命令
2012-06-12 10:19 1007实用的分类sort操作 ... -
sed替换
2012-06-28 16:49 1077比如,要将目录/modules下面所有文件中的zhangsan ... -
grep正则表达式
2012-06-28 16:48 1125grep the regex.txt grep "t ... -
shell字符串截取
2011-12-14 09:28 1220sed "s/\'/\'\'/g" a.t ... -
shell的while循环
2011-12-14 09:15 1273#!/bin/sh #filename:2.sh b=9 ... -
Shell计算
2011-12-12 14:03 821echo "这是计算:1+2+3+...的函数&qu ...
相关推荐
至于`进入shell后继续执行命令的方法.txt`,在`adb shell`中执行多条命令时,一般有两种方法:一是将所有命令写在同一行,用分号或逻辑运算符连接,如`command1; command2; command3`;二是编写一个shell脚本(如`...
ECHO ECHO PAUSE ^>^>%temp%\x.bat >> %temp%\3.bat ECHO ECHO DEL ^%%^%%0 ^>^>%temp%\x.bat >> %temp%\3.bat ECHO start/max %temp%\x.bat >> %temp%\3.bat ECHO del %temp%\1.cab ^&^& del %%0 >> %temp%\3.bat ...
要实现这一目标,我们可以借助两种方法:使用VBS脚本或修改BAT文件本身。 **方法一:使用VBS脚本** 1. 创建一个新的VBScript文件,扩展名为.vbs。例如,创建一个名为`runHidden.bat.vbs`的文件,并用文本编辑器...
在Shell编程中,开发者可以直接调用API函数来实现更复杂的功能,如读写注册表、管理进程、控制窗口等。比如,`CreateProcess`函数可以启动新的进程,`RegOpenKeyEx`和`RegSetValueEx`用于操作注册表。 3. **注册表...
在BAT文件中,可以使用`IF`语句、`GOTO`标签和`FOR`循环来实现更复杂的逻辑。例如,遍历文件夹中的所有文件,对每个文件的每一行进行字符串处理。 5. **变量和通配符**: 批处理文件支持变量和通配符。变量用`SET...
批处理文件中的命令可以用CMD命令,也可以使用PowerShell命令,具体取决于文件的扩展名和所使用的Shell环境。 四、脚本编程 Windows Shell编程不仅仅是执行单一的命令,还可以编写脚本来完成一系列操作。通过使用...
如果我们不想使用vbs脚本,也可以使用bat脚本来实现自动以管理员身份运行批处理文件。下面是示例代码: ```batch @ECHO OFF setlocal EnableDelayedExpansion color 3 etitle 添加服务配置 PUSHD %~DP0 & cd /d "%~...
记住,批处理文件本质上是文本文件,可以用任何文本编辑器创建和修改,确保每个命令都在新的一行开始,除非使用分隔符将多个命令写在同一行。同时,合理的注释和错误处理也是编写批处理文件时的重要考虑因素。
- 使用`pause`命令可以暂停脚本执行,便于调试。 2. **Windows Script Host (WSH)**: - WSH是微软提供的一个组件,用于执行VBS(Visual Basic Script)和JScript脚本。 - VBS是一种基于Visual Basic的脚本语言...
在IT行业中,尤其是在Android开发与测试领域,批处理脚本(BAT脚本)是一种非常实用的工具,尤其对于自动化测试和设备管理来说。本文将详细阐述Android手机测试中使用批处理脚本的相关知识。 一.批处理定义 批处理...
不仅如此,了解批处理命令还能帮助我们更好地理解操作系统底层的工作原理,为更高级的自动化技术,如Windows PowerShell或Linux shell脚本打下基础。 批处理编程虽然简单,但其威力不容小觑。它能帮助我们实现自动...
在Linux系统中,虽然批处理概念相同,但使用的命令和语法有所不同,如bash shell脚本使用`#`作为注释,`echo`、`if`、`for`等命令也有其独特的用法。不过,理解DOS批处理的基本原理有助于理解和学习其他类似的脚本...
Windows 下Shell语言,通常指的是Windows环境下使用的命令行脚本语言,这类脚本语言中最为著名的便是批处理脚本(Batch file scripting)和Windows PowerShell。批处理脚本主要使用命令提示符(CMD)来执行,而...
在Windows操作系统中,批处理(BAT)文件是一种文本文件,其中包含了可以连续执行的一系列命令。这些命令通常用于自动化常见的任务,例如复制文件、创建目录或运行程序。本主题将详细探讨如何执行BAT文件并捕获其...
- **步骤2**:使用`WScript.Shell`对象来运行`testcopy.bat`文件,从而隐藏命令行窗口。 - **方法一**:直接通过`WScript.Shell`运行批处理文件。创建`testcopy1.vbs`脚本: ```vbscript Dim objShell Set ...
BAT批处理脚本是Windows操作系统中一种非常实用的自动化工具,它通过编写一系列命令行指令,可以实现对系统的批量操作,比如系统设置的查询和修改。在这个特定的压缩包文件中,我们关注的是如何利用批处理脚本来去除...
总结,启动和暂停系统服务是系统管理员常用的操作,VB、BAT和VBS提供了方便的工具来实现这些功能。理解并掌握这些编程和脚本语言的用法,对于日常的系统管理和故障排查具有重要的实践意义。在使用时,务必确保你有...
本文将详细介绍如何通过shell和bat脚本来查看Android设备上的数据流量统计。 首先,我们要理解Android系统中的数据流量统计原理。Android系统会记录每个应用的数据使用量,分为移动数据(如4G、3G)和Wi-Fi两种类型...
7. **错误处理和调试**:理解如何捕获和处理错误,以及使用`echo off`,`pause`等命令进行调试,是编写稳定脚本的关键。 8. **高级脚本工具**:除了CMD本身,还有一些增强型的命令行工具,如Powershell,它提供了更...
1. 使用`reg`命令来查询和读取注册表中的相关键,如`HKEY_CLASSES_ROOT\Directory\shell`和`HKEY_CLASSES_ROOT\Drive\shell`等,这些位置通常存储了“新建”菜单的设置。 2. 判断哪些键值与要删除的“新建”菜单项目...