当前位置:  技术问答>linux和unix

关于sh和输出重定向

    来源: 互联网  发布时间:2015-06-11

    本文导语:  请问: 1。sh和shell有区别吗?为什么在linux下面有时要写sh ... 而有时直接写命令? 2。所谓输出重定向是什么意思?是不是无论什么程序,只要在屏幕上有输出信息的,都可以通过重定向把原先在屏幕上的内容输入...

请问:
1。sh和shell有区别吗?为什么在linux下面有时要写sh ... 而有时直接写命令?
2。所谓输出重定向是什么意思?是不是无论什么程序,只要在屏幕上有输出信息的,都可以通过重定向把原先在屏幕上的内容输入到特定的文件中?
3。关于2,比如javac xxx.java > txtout.txt可以吗?为什么信息还是在屏幕上而没有输入文件?有没有办法实现?

|
1.sh通常是/bin/sh,而shell是一个称呼,不特指具体类型的shell
 ./sh  的格式来运行的时候是指定用/bin/sh来执行exec,通常是针对exec中没有指定shell的时候用;而直接运行 ./要不exec是一个二进制文件,不依赖于shell,或者exec的第一行用#!/bin/ksh的形式指定了运行它的shell

2.通常情况下,1(标准输入)和2(错误输出)都是指向控制台的,用>或者>>可以把他们定向到文件中去。

3.javac xxx.java > txtout.txt已经把你的标准输出定向到文件txtout.txt了,这个时候的屏幕输出是错误信息。你可以 javac xxx.java >txtout.txt 2>&1就可以把所有的输出都写道文件txtout.txt了

|
对于第一个问题:
在dos/windows里面,当前目录被作为默认目录之一,也就是说你输入a.exe的时候系统会先搜索当前的目录;在linux里面,当前目录一般不作为默认目录(当然你也可以设置成默认目录),因此你在执行一个文件a.sh的时候必须使用./a.sh来指定搜索目录。
而作为 sh a.sh ,a.sh作为命令参数,而sh命令中这个位置的参数将自动添加当前目录。
因此 sh a.sh 和 ./a.sh 在实际应用上应当是等价的。
至于./a.sh或者/some_place/a.sh为什么会使用sh作为解释器,这是由linux的文件识别方式决定的。一般linux下的脚本文件都在第一行说明脚本的解释器,而在dos/windows下使用后缀名来说明文件的运行器。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • C 如果一个字符串是空值 输出的时候如何让其输出NULL 而不是什么也不输出?
  • Python不使用print而直接输出二进制字符串
  • 如何将一个命令的输出输出到屏幕上,并且同时保存到一个文件中?
  • python异常信息堆栈输出到日志文件
  • 怎样既在屏幕上显示输出,又把输出保存到一个文件中.
  • python字符串格式化输出及相关操作代码举例
  • 怎样在使用curses字符串输出函数或字符输出函数时,隐藏光标
  • 如何ls只输出子目录名,不输出文件名??
  • 怎样可以按行输出输出二叉树?
  • 请问如何动态命名重定向输出文件名,并将内容输出到该文件?
  • 一个守护进程在里面printf想输出点东西为什么不输出?
  • 菜鸟之问题:用那个输入输出流类输出到打印机
  • 送分了:)如何将一些需要输出的东西写到ByteArrayOutputStream输出流中,如一个二维数组String[][]。
  • 在脚本中如何实现输出格式化输出
  • 怎样格式化输出:即把7输出为007?
  • 分析6410 TV输出流程, TV输出时不显示图像与大家讨论!
  • 输出重定向的问题:为什么输出到文件的东西不对?
  • 在Unix下写的printf输出怎么不能在控制台上看到输出内容呢?
  • AWK 的域 输出对不齐 另命令行怎么输出TAB
  • 关于unix使用参数导致脚本输出异常(与脚本内直接带参数输出结果不同)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3