Shell脚本变量不存储文件

时间:2015-07-01 06:55:38

标签: shell variables

我正在尝试将文本文件的内容存储在一个变量中,并将该变量用作电子邮件发送中的正文。下面是将值存储在变量

中的代码
ct=`cat a.txt`

我试过

ct="`cat a.txt`"

当我以 sh script.sh 执行脚本时,问题是。 a.txt 的全部内容存储在变量 ct 中。

但是当我在没有 sh 扩展名的情况下执行脚本时(即 script.ksh )。只有少数内容存储是变量 ct 。我无法追查问题所在。 需要你的帮助。

1 个答案:

答案 0 :(得分:0)

在默认的Linux系统上,未安装/ bin / ksh。有时你可以安装一个ksh包。解决方法ln -s /bin/bash /bin/ksh是危险的,因为bash在大多数时候都是超集,但并不总是兼容。

对于CentOS环境,最好的方法是将shebang行改为#!/bin/bash,但要注意以下问题:

  • 版本控制
    如果要在CentOS和其他Unix操作系统上使用相同的脚本,则需要维护两个版本或在其他Unix操作系统上安装bash。
  • 开发人员应该用一种语言,bash或ksh写 当您需要维护大型ksh脚本时,在bash中编写新脚本会变得令人困惑。
  • 检查/测试您的代码
    你在while循环中设置变量吗?他们可能会迷路!