A. linux 执行sh文件,提示command not found
原因是linux 执行sh文件里面缺少PATH=$PATH:/sbin,添加进即可。
1、首先需要打开电脑的桌面,如图所示,鼠标右键单击选择打开终端的选项。
B. linux shell 如何把txt文本中每一行提取出来赋值给一变量,再输出这一变量
: No such file or directorybash
你的shell脚本有可能是在windows下编写的,然后在转移到linux执行的。
#vi filename
然后用命令
:set ff ---------查看时dos还是unix
若是dos字样, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看。
建立脚本最好在linux下,使用touch filename.sh来创建,再用vi filename.sh来编写脚本命令。
例如:
#touch dd.sh
#vi dd.sh
然后输入下面的内容。
#!bin/bash
#文本txt每一行复制并输出----注释
cat 123.txt|while read var;do
echo $var
done
exit 0
保存后,使用
#bash dd.sh
或者
#chmod 777 ss.sh
#./dd.sh
就可以运行啦。
C. linux修改文件类型问题
1、这是dos格式与unix格式间的区别
2、ff=fileformat, 是设置文件格式为unix类型,即换行符为\n。
ff还可以设置为dos(换行符为\r\n) mac(换行为\r)
:set ff? 可以看到当前文件格式
:set ff=unix 设置成unix格式
:set ff=dos 设置成dos格式
3、详细你可以看下:http://vimcdoc.sourceforge.net/doc/usr_23.html
D. Linux下编译出现这个bash:./configure:No such file or directory 怎么解决
1、开始以为是sh路径问题,用which查看是正确的。
E. linux系统 bad interpreter:Permission denied问题解决
ls -l install.sh和/disk1/A/A.sh以及/disk1/A/B.sh
感觉不像install.sh的问题。
请问楼主,你的这些script有没有在windows系统下编辑过。用dos2unix试试。
例如
请你使用dos2unix a.sh,然后再chmod 755 a.sh
然后运行,测试一下看看。其他的也这样。
如果还不行,可以输入bash -x,进入debug状态,然后运行看看。错在哪一行。
F. linux运行sh脚本出现/r
项目中要运行sh脚本。但是脚本的项目路径文件夹运行的时候 会报错,找不到文件夹。
发现执行的时候会默认在 sh脚本中添加/r 也就是回车键。
找了半天才想起来是文件格式不对。
在vim 下面执行 :set ff 查看当前文档的格式 是gos
需要将sh脚本改成unix格式的才能运行。
完美!
G. linux执行.sh脚本,提示bad interpreter:文件过大,如何解决
分析:
这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行。转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可。
或者按Ctrl+H,将文本内容转换为十六进制,然后其中的0D 0A(Dos下的回车)替换为0A(Unix下的回车),但是这种方式还是要注意修改后保存时文本的类型,比较推荐的是下面第二种方式。
2)也可在Linux中转换:
首先要确保文件有可执行权限
#sh>chmod a+x filename
然后修改文件格式
#sh>vi filename
利用如下命令查看文件格式
:set ff 或 :set fileformat
可以看到如下信息
fileformat=dos 或 fileformat=unix
利用如下命令修改文件格式
:set ff=unix 或 :set fileformat=unix
:wq (存盘退出)
最后再执行文件
#sh>./filename
H. Linuxfind命令搜索中文文件名字不显示
此时一般原因就是你shell脚本在编写时的系统跟你的执行脚本的系统不一致。
首先用vi命令打开文件。在vi命令模式中使用setff命令。修改文件format为unix。然后wq保存退出,重新执行脚本就正常了。
xshell是一种连接虚拟机的软件,可以与虚拟机同步。linux操作系统是一款在服务器上广泛应用的操作系统,虽然起初并不适合普通大众,而且使用起来没有Windows操作系统方便。
I. linux中的set ff=unix是什么意思,哪位大侠给说说
set ff=unix : 告诉 vi 编辑器,使用unix换行符
老式的电传打字机使用两个字符来代表换行。一个字符把滑动架移回首位 (称为回车, <CR>),另一个字符把纸上移一行 (称为换行, <LF>)。
当计算机问世以后,人们对换行的处理没有达成一致意见。
UNIX 开发者决定用 <LF> 一个字符来表示行尾。
Apple 开发者规定了用 <CR> 。
开发 MS-DOS (Windows)开发者则决定沿用<CR><LF>。
这就是说,把一个文件从一种系统移到另一种系统,就有换行符的麻烦。如:用 vi 来尝试编辑一个采用 MS-DOS 格式的文件,你将会发现每一行的末尾有个 ^M 字符。(^M 就是 <CR>)。
set ff=unix ,就是告诉 vi 编辑器,使用unix换行符
set ff=dos ,就是告诉 vi 编辑器,使用dos换行符