當前位置:首頁 » 編程軟體 » 以utf8形式執行sh腳本

以utf8形式執行sh腳本

發布時間: 2022-05-19 11:18:47

㈠ 求逐條解釋shell腳本 謝謝!

$ vi change.sh
2)、復制下面代碼到change.sh
代碼:
#!/bin/bash 注釋 表示為bash腳本
cd /usr/share/man/zh_CN/ 進入這個目錄 /usr/share/man/zh_CN/
for k in * 循環語句 k變數在任意的字元中時 執行下一步
do 循環語句格式
cd $k 進入k變數的目錄
for i in *.gz 如果變數i為以.gz結尾的文件
do 執行for循環
j=`echo ${i%\.gz}` 定義變數j為輸出 i符合.gz標準的值的路徑
gunzip $i 解壓i對應的壓縮文件
iconv -f gb18030 -t utf8 $j >tmp 將j變數中的對應的文件轉換格式到tmp文件中
mv tmp $j 剪切tmp文件 變為j變數的名稱
gzip $j 壓縮現在叫做j變數名的文件
done 循環結束
cd .. 返回上一目錄
don 循環結束
3)、$ chmod 777 change.sh 修改啟動腳本執行許可權
4)、$ ./change.sh 執行腳本

㈡ 如何用腳本的形式在linux系統中解決修改亂碼

方法一:使用VI

首先備份你的/etc/sysconfig/i18n文件:

命令:

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bak

使用:ls /etc/sysconfig/ 命令看看確定起路徑下是不是同時有一個i18n 和 一個i18n.bak的文件(確認你已經做了備份)

然後使用vi編輯器對 i18n 進行編輯;初始的時候文件如下所示,但是可能只有其中的一兩個;

LANG="en_US.UTF-8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
SYSFONTACM="utf8"

然後你需要做的就是找到LANG 和 SUPPORTED 這兩行,然後將以下內容對應著替換上。

LANG="en_US.UTF-8"
SUPPORTED="eu_ES.UTF-8:eu_ES:eu:zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:
zh:zh_SG.UTF-8:zh_SG:zh:zh_TW.UTF-8:zh_TW:zh:en_AU.UTF-8:en_AU:en:en_HK.
UTF-8:en_HK:en:en_US.UTF-8:en_US:en"

上面的是默認英文系統,支持中文簡體、繁體、英文的設置

下面是中文設置

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

方法二:使用SSH

1.使用SSH連接上伺服器,然後將/etc/sysconfig/下的i18n文件拖動到windows電腦上,(記得復制一個當備份)然後使用UltraEdit-32工具打開改文件

2.然後你需要做的就是找到LANG 和 SUPPORTED 這兩行,然後將以下內容對應著替換上。

LANG="en_US.UTF-8"
SUPPORTED="eu_ES.UTF-8:eu_ES:eu:zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:
zh_CN:zh:zh_SG.UTF-8:zh_SG:zh:zh_TW.UTF-8:zh_TW:zh:en_AU.UTF-8:en_AU:en:en_HK.
UTF-8:en_HK:en:en_US.UTF-8:en_US:en"

3.將該文件保存完後拖回覆蓋到linux的路徑下,這樣原文件就被覆蓋了。

方法三:

我修改完文件,然後發給你,你把它拖進linux的/etc/sysconfig/路徑下覆蓋原文件。

圖形界面上顯示中文為方框的情況:是因為安裝系統時沒有選擇安裝支持中文顯示。

解決辦法:

將安裝盤的第三張盤放進光碟機中,然後找到一個ttfont_zh_CN的文件,將其安裝後重新啟動就能解決這一問題。

最好的是http://tech.sina.com.cn/s/2008-03-17/08532081295.shtml上的。

㈢ 保存腳本文件時,用兼容於UTF-8的方式編碼,那解碼也要用UTF-8嗎

ASCII < ISO-8859-9 < UTF-8
解碼是否需要指定UTF-8,要看你是否用到了ASCII/ISO-8859-9以外的字元。如果有就必須要用UTF-8

㈣ C語言如何生成UTF-8編碼格式的文件

下面的Unix下函數可以會幫到你

getenv(取得環境變數內容)
相關函數 putenv,setenv,unsetenv
表頭文件 #include<stdlib.h>
定義函數 char * getenv(const char *name);
函數說明 getenv()用來取得參數name環境變數的內容。參數name為環境變數的名稱,如果該變數存在則會返回指向該內容的指針。環境變數的格式為name=value。
返回值 執行成功則返回指向該內容的指針,找不到符合的環境變數名稱則返回NULL。
範例 #include<stdlib.h>
mian()
{
char *p;
if((p = getenv(「USER」)))
printf(「USER=%s\n」,p);
}

執行 USER = root

putenv(改變或增加環境變數)
相關函數 getenv,setenv,unsetenv
表頭文件 #include4<stdlib.h>
定義函數 int putenv(const char * string);
函數說明 putenv()用來改變或增加環境變數的內容。參數string的格式為name=value,如果該環境變數原先存在,則變數內容會依參數string改變,否則此參數內容會成為新的環境變數。
返回值 執行成功則返回0,有錯誤發生則返回-1。
錯誤代碼 ENOMEM 內存不足,無法配置新的環境變數空間。
範例 #include<stdlib.h>
main()
{
char *p;
if((p = getenv(「USER」)))
printf(「USER =%s\n」,p);
putenv(「USER=test」);
printf(「USER+5s\n」,getenv(「USER」));
}

執行 USER=root
USER=root

setenv(改變或增加環境變數)
相關函數 getenv,putenv,unsetenv
表頭文件 #include<stdlib.h>
定義函數 int setenv(const char *name,const char * value,int overwrite);
函數說明 setenv()用來改變或增加環境變數的內容。參數name為環境變數名稱字元串。
參數 value則為變數內容,參數overwrite用來決定是否要改變已存在的環境變數。如果overwrite不為0,而該環境變數原已有內容,則原內容會被改為參數value所指的變數內容。如果overwrite為0,且該環境變數已有內容,則參數value會被忽略。
返回值 執行成功則返回0,有錯誤發生時返回-1。
錯誤代碼 ENOMEM 內存不足,無法配置新的環境變數空間
範例 #include<stdlib.h>
main()
{
char * p;
if((p=getenv(「USER」)))
printf(「USER =%s\n」,p);
setenv(「USER」,」test」,1);
printf(「USER=%s\n」,getenv(「USEr」));
unsetenv(「USER」);
printf(「USER=%s\n」,getenv(「USER」));
}

執行 USER = root
USER = test
USER = (null)

㈤ 執行shell腳本的方式有哪些

金陵圖(韋庄)

㈥ shell腳本調用python處理中文錯誤的問題

解決方法有兩種:
一,升級到較高的版本,比如3.1.2或者以上
第二,在python安裝的目錄找到site.py文件(Python2x\Lib\),修改def setencoding()方法,把
def setencoding():
"""Set the string encoding used by the Unicode implementation. The default is 'ascii', but if you're willing to experiment, you can change this.""" encoding = "ascii" # Default value set by _PyUnicode_Init() if 0: # Enable to support locale aware default string encodings. import locale loc = locale.getdefaultlocale() if loc[1]: encoding = loc[1]
....
把if 0,改為if 1

㈦ shell如何設置unix生成的文件為utf-8格式

在shell中修改環境變數LANG=en_US.utf8
可在/etc/sysconfig/i18n 中修改成LANG=en_US.utf8,則系統啟動默認設置成utf-8。

㈧ linux php腳本執行,日誌輸出到文件亂碼問題

轉換一下編碼試試

#從gb2312轉為utf8

iconv -f GB2312 -t UTF-8 log.txt
> new_log.txt

或者
#從gb2312轉為utf8
iconv -f UTF8 -t GB2312 log.txt
> new_log.txt

㈨ 怎樣在Shell中把utf8編碼轉成中文顯示

目前shell不支持unicode轉義的字元串,bash4.2 alpha支持
可行的辦法就是做字元替換,給個Python的demo,面向行處理
#!/usr/bin/env python

# -*- coding: utf-8 -*-

import re

import sys

def main():

for line in sys.stdin:

sys.stdout.write(re.sub(r'\\u\w{4}',

lambda e: unichr(int(e.group(0)[2:], 16)).encode('utf-8'),

line))

if __name__ == '__main__':

main()
復制代碼
用法:
腳本保存為test.py,執行
sumomos-MacBook-Pro:py lgr$ echo '\u9ED8\u8BA4' | python ./test.py
默認

熱點內容
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668
電箱都有哪些配置 發布:2025-05-15 00:30:21 瀏覽:74
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:35
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:810
醫院招商引資宣傳片腳本 發布:2025-05-15 00:01:21 瀏覽:368
linuxcftp伺服器 發布:2025-05-14 23:58:18 瀏覽:718
探岳什麼配置才有駕駛模式選擇 發布:2025-05-14 23:53:17 瀏覽:146