Shell脚本: Windows下可用源码 转换为 Linux下可用源码

简介


Windows下编写的代码(如C\C++\Java等)放到Linux下不能直接编译, 因为主要存在两个问题:

1. Windows和Linux的行尾符不同, Windows下行尾符是"\n\r", 而Linux的行尾符是"\n"

2. Windows下编码通常是GB2312, 而Linux中的编码通常是UTF-8。


所以编写了这个脚本文件用于将Windows下编写的源码转化为Linux下可用的源码, 

该脚本文件可以将 指定目录及其子目录 下指定 后缀名 的源文件进行转换。


使用方式

sudo apt-get install dos2unix
bash trans.sh 指定文件夹 要转换文件的拓展名


例如,

将/home文件夹及其子文件下所有java源文件进行转换

bash trans.sh /home java


代码

#!/bin/bash
#Program:
#   convert the text written in windows to the text usable in linux.
#Author:
#   Chen Zhongzheng
#History:
#   2014年09月03日20:17:36  v1.0
#TODO:
#   add a parameter to specify the origin encoding, eg. gb2312\cp936\gbk...

function recursion()
{
	cd $1
	for i in $(ls)
	do
		if [ -d "$i" ]; then
			recursion $i $2
		elif [ "${i##*.}" = "${2}" ]; then
			iconv -f cp936 -t utf-8 $i > temp_111
			mv temp_111 $i
			dos2unix $i
		fi
	done
	cd ..
}

if [ ! $# -eq 2 ]; then
    echo "usage: bash convert.sh directory_name extension_name"
elif [ ! -d $1 ]; then
	echo "usage: bash convert.sh directory_name extension_name"
else
	recursion $1 $2
fi



#!/bin/bash
#Program:
#   convert the text written in windows to the text usable in linux.
#Author:
#   Chen Zhongzheng
#History:
#   2015年12月04日21:33:29  v1.1
#TODO:
#   add a parameter to specify the origin encoding, eg. gb2312\cp936\gbk...

function recursion()
{
  cd $1
  for i in $(ls)
  do
    if [ -d "$i" ]; then
      recursion $i $2
    elif [ "${i##*.}" = "${2}" ]; then
      enca -L zh_CN -x UTF-8 $i
      dos2unix $i
    fi
  done
  cd ..
}

if [ ! $# -eq 2 ]; then
  echo "usage: bash convert.sh directory_name extension_name"
elif [ ! -d $1 ]; then
  echo "usage:  bash convert.sh directory_name extension_name"
else
  recursion $1 $2
fi


参考:

http://www.wenzizone.cn/?p=313

http://bbs.chinaunix.net/thread-624345-1-1.html

http://blog.csdn.net/rainharder/article/details/6030255

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux shell命令行及脚本编程是基于Linux操作系统的命令行环境下进行编程和脚本开发的一种方式。通过这种方式,我们可以使用一系列预定义的命令和脚本语法来完成各种任务,例如自动化操作、批量处理等。 一个典型的Linux shell脚本编程实例是实现一个自动备份脚本。以下是该脚本源码示例: ```bash #!/bin/bash # Automatic Backup Script # 定义备份目录和目标目录 backup_dir="/path/to/backup" target_dir="/path/to/target" # 创建备份目录 mkdir -p $backup_dir # 备份文件 backup_file="backup_$(date +%Y%m%d).tar.gz" # 根据当前日期生成备份文件名 tar -czf $backup_dir/$backup_file $target_dir # 将目标目录压缩成备份文件 # 检查备份是否成功并发送邮件通知 if [ $? -eq 0 ]; then # 如果备份成功 echo "Backup successful: $backup_file" # 在此处添加发送邮件的命令,例如使用sendmail或者mail等命令 else # 如果备份失败 echo "Backup failed" # 在此处添加发送邮件的命令,通知备份失败 fi ``` 该备份脚本首先定义了备份目录和目标目录的路径。然后,它创建了备份目录(如果不存在),接着使用`tar`命令将目标目录压缩成备份文件,文件名以当前日期为前缀。最后,根据备份命令的执行结果,判断备份是否成功并进行相应的邮件通知。 这只是一个简单的示例,实际上,Linux shell脚本编程可以涵盖更广泛的应用范围,包括系统管理、日志分析、自动化部署等。掌握了Linux shell命令行及脚本编程,我们可以更加高效地利用Linux操作系统进行各种任务处理和工作流程优化。 ### 回答2: Linux shell是一种命令行界面,用户可以直接在终端中输入命令来与操作系统进行交互。而shell脚本编程则是用脚本语言编写一系列的命令,以便自动化执行一些任务。 下面我们来介绍一个关于文件备份的实例。 假设我们有一个目录下的文件需要进行定期备份。我们可以编写一个shell脚本来完成这个任务。 首先,我们需要创建一个名为backup.sh的脚本文件。在文件中输入以下内容: ``` #!/bin/bash backup_dir="/path/to/backup/folder" source_dir="/path/to/source/folder" date=$(date +%Y%m%d) backup_file="backup_$date.tar.gz" tar -czvf "$backup_dir/$backup_file" "$source_dir" ``` 以上是一个简单的文件备份脚本。首先我们定义了备份目录和源目录的路径,然后使用`date`命令来获取当前日期,并将其作为备份文件的一部分命名。最后,我们使用`tar`命令将源目录打包成一个压缩文件,并将其保存在备份目录下。 要执行这个脚本,我们需要为脚本文件添加可执行权限。在终端中使用`chmod +x backup.sh`命令即可。 然后,我们可以在终端中执行脚本来进行备份操作。只需要输入`./backup.sh`即可开始备份过程。备份文件将保存在指定的备份目录下,并带有日期作为文件名的一部分。 通过编写这个简单的shell脚本,我们可以实现文件备份的自动化。可以根据实际需求进行修改和扩展,以适应不同的场景。这就是一个关于Linux shell命令行及脚本编程实例的详解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值