在ubuntu的终端中运行脚本文件的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ubuntu的终端中运行脚本文件的问题相关的知识,希望对你有一定的参考价值。
在ubuntu的终端中运行脚本文件,如果文件的头部标注的是“#! csh -f”,是不是在执行时必须输入:“csh 文件名.sh”才能执行此脚本。是否有办法省略csh 和.sh后缀?
请高手指点,不胜感激
非常感谢各位大虾的指点。但问题并没完全解决。
在我的Ubuntu系统中,csh我已经安装了。Ubuntu中默认的是b shell。我需要执行的脚本文件“XXX.sh”在我自己创建的工作文件夹内。我从终端进入此文件夹,然后直接输入“XXX”或“XXX.sh”,会报错:“bash: /usr/local/bin/XXX.sh:csh:损坏的解释器: 没有该文件或目录”。如果输入“csh XXX”,则报错:“XXX: 没有该文件或目录.”。只有输入:“csh XXX.sh”,脚本才能正常运行。
请哪位大虾在帮我解释一下,非常感谢。
linux下定位一个文件需要该文件完整文件名。该文件然来是什么名字就敲什么名字,可以通过tab键自动补全。
“bash: /usr/local/bin/XXX.sh:csh:损坏的解释器: 没有该文件或目录”
至于报错的问题,需要在脚本的第一行写上完整的路径
这个路径可以用命令which csh得到 参考技术A #!csh -f
在shell脚本中#开头表示注释,唯有第一行的#!不是,表示你用什么样的shell解释器,解释以下的命令。
shell 有c shell 和b shell 等。 你用的是csh, 首先检查你的linux 系统是否安装它。终端命令行下执行 csh, 如果出现:Try: sudo apt-get install <selected package> 类似语句(由于你用的是ubuntu), 说明你没有安装,执行apt-get install csh.
-f 是它的参数,具体意义,参考:http://baike.baidu.com/view/2096726.html?wtp=tt
有个个参数的说明. 参考技术B 应该不是吧,只要这个sh文件是可执行的就可以了
头写csh是因为这个脚本的某些参数设定用的是csh
ubuntu 下执行shell脚本的问题
将一个脚本保存为带有扩展名的文件,如test.sh,在终端上输入: chmod +x test.sh然后输入: test.sh终端显示: test.sh 找不到命令 但是,如果在终端上输入: ./test.sh就能运行成功。另外,如果脚本文件没有扩展名的话,在终端上输入: ./test 或者 test脚本都能执行成功,这是为什么呢? 当然,如果不想输入chmod那一行命令的话,也可以直接执行,直接在终端上输入:/bin/sh test或者/bin/sh test.sh
参考技术A 诶!你还要去好好去玩一下Linux(不要用图形系统),你问的这些问题,真不好解释1,chmod +x test.sh:将test.sh变成可执行权限。
2,test.sh 第一行有"#!/bin/sh” 告诉解释器在什么位置。
3,第一步test.sh变成可执行了,./test.sh(运行当前目录下一个可执行文件,这是一个shell脚本,需要解释器,如果有"#!/bin/sh”通过sh解释,如果没有会报错没这个命令)。
4,./test.sh(第三步我以解释什么意思);运行test.sh(将同过path路径去找这个命令,显然这个tesh.sh这个文件不在你path路径下,你怎么能运行呢)。
5,sh test.sh(sh在/bin目录下也就是已经假如path路径,用sh命令解释你这个脚本)本回答被提问者和网友采纳 参考技术B export PATH=.:$PATH
add . to system PATH variable, so system will search command starting from current directory.
You can also add the "export" line to $HOME/.bashrc, so it works always...
以上是关于在ubuntu的终端中运行脚本文件的问题的主要内容,如果未能解决你的问题,请参考以下文章
ubuntu12.10终端执行文件命令的时候显示没有那个文件或目录