在shell脚本中运行mount命令

时间:2012-02-13 12:30:14

标签: shell mount

我正在尝试从shell脚本运行mount命令。 我使用的代码如下:

echo mypassword | sudo -S mount -o loop system.img system

如果我将此代码直接写入终端,一切都很完美。但是当我在脚本中编写并从终端运行脚本时,会出现问题。我安装后,我在脚本中创建的目录获取system^M。目录名称保留为system但我可以通过写下来从终端访问它:

cd system^M/

由于这个问题,我无法运行我的after命令,导致他们找不到我的system目录。 此外,当我运行scripti时,它会挂载img文件,但会显示错误消息,例如: not found

有谁知道,问题是什么?

3 个答案:

答案 0 :(得分:1)

在大多数情况下,看起来您的脚本是使用DOS行终止符保存的(CRLFCR在unix终端上打印为^M。确保使用UNIX行终止符保存它。

答案 1 :(得分:1)

您的编辑器编写Windows(CR + LF)而非Unix(仅LF)换行符,有关详细信息,请参阅the newline article of Wikipedia

答案 2 :(得分:1)

目录名保持'system ';通过执行

验证
ls -b 

看逃跑。

修复脚本的lineends:

dos2unix script.sh 
# or
fromdos script.sh

使用vim,

vim script.sh +"se ff=unix|wq"