Chinaunix

标题: sed -f sedscript file 错误 [打印本页]

作者: dawnwish    时间: 2010-12-04 21:11
标题: sed -f sedscript file 错误
[dawnwish@dawnwish ~]$ cat b
s/a/A/g
s/b/B/g
s/c/C/g
s/d/D/g
[dawnwish@dawnwish ~]$ sed -f ./b < a
sed:文件 ./b 行号:1:未知的命令:“
作者: dawnwish    时间: 2010-12-04 21:12
解释器文件同样不能使用。
[dawnwish@dawnwish ~]$ cat b
#!/bin/sed -f
s/a/A/g
s/e/E/g
s/i/I/g
s/o/O/g
s/u/U/g
[dawnwish@dawnwish ~]$ chmod +x b
[dawnwish@dawnwish ~]$ ./b < a
./b: line 1: #!/bin/sed: 没有那个文件或目录
./b: line 2: s/a/A/g: 没有那个文件或目录
./b: line 3: s/e/E/g: 没有那个文件或目录
./b: line 4: s/i/I/g: 没有那个文件或目录
./b: line 5: s/o/O/g: 没有那个文件或目录
./b: line 6: s/u/U/g: 没有那个文件或目录

我用的是bash,不知道错在哪里,求解释
作者: cjaizss    时间: 2010-12-04 22:39
s前面有不可见字符?
作者: dawnwish    时间: 2010-12-04 23:19
回复 3# cjaizss


就是普通的shell脚本如
#!/bin/sh
echo "test"

运行的结果是:
./tu: line 1: #!/bin/sh: 没有那个文件或目录
test

为什么会出现“没有那个文件或目录”的错误?

用hexdump查看文件内容时,正文前有三个字节的数,个人认为是magic number,不知是不是这个的问题。
作者: cjaizss    时间: 2010-12-04 23:28
回复  cjaizss


就是普通的shell脚本如
#!/bin/sh
echo "test"

运行的结果是:
./tu: line 1: & ...
dawnwish 发表于 2010-12-04 23:19



    那就是因为这个了
作者: dawnwish    时间: 2010-12-04 23:36
[dawnwish@dawnwish ~]$ cat -e b
M-oM-;M-?s/a/A/g$
s/b/B/g$
s/c/C/g$
s/d/D/g$
[dawnwish@dawnwish ~]$ cat -e tu
M-oM-;M-?#!/bin/sh$
echo "test"$

似乎是这个问题,我以前写的一个脚本(可以运行),第一行前面就没有其它数。
[dawnwish@dawnwish ~]$ cat -e ./mdisks
#!/bin/sh$
$
echo "M-fM-^LM-^BM-hM-=M-=DM-oM-<M-^LEM-oM-<M-^LFM-gM-^[M-^X"$
cd /media/$
sudo mount -o utf8 --rw /dev/sda5 /media/DISK_D$
sudo mount -o utf8 --rw /dev/sda6 /media/DISK_E$
sudo mount -o utf8 --rw /dev/sda7 /media/DISK_F$

不过为什么现在会出现呢?
作者: dawnwish    时间: 2010-12-05 12:22
我发现用vim编写时,会在文件头部添加M-oM-;M-?
而用ed编写时则不会添加。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2