转换 Windows Batch 以在 CentOS 上运行?

转换 Windows Batch 以在 CentOS 上运行?

我得到了我当前的脚本:

@echo off 
c: 
REM Forces to change to C drive 
cd / 
REM Forces to start at c:\ instead of a random folder 
cd Users\%USERNAME%\Documents\ 
REM Selects the work folder 
echo current directory = %cd% 
REM Displays the work folder 
set /p Folder= Please insert domain name? 
REM Asks user for folder name to save in 

if not exist %Folder% ( 
    mkdir %Folder% 
    cd %Folder% 
    break>"CSR.txt" 
    break>"KEY.txt" 
    start notepad++ "CSR.txt" 
    start notepad++ "KEY.txt" 
    REM Makes the folder and requested files , also opens the files in notepad++ 
 ) else ( 
    echo %Folder% already exists, creating date folder 
    cd %Folder% 
    mkdir %date:~-10,2%-%date:~-7,2%-%date:~-4,4%-%time:~0,2%_%time:~3,2% 
    cd %date:~-10,2%-%date:~-7,2%-%date:~-4,4%-%time:~0,2%_%time:~3,2% 
    break>"CSR.txt" 
    break>"KEY.txt" 
    start notepad++ "CSR.txt" 
    start notepad++ "KEY.txt" 
    REM If previous folder already exists make a date folder , also opens the files  in notepad++
    pause  
)

(不要介意 REM 行,这是我的第一个脚本,因此必须为自己添加一些指针)

现在我想让这个脚本在我的(CentOS)服务器上运行,但我不知道如何让它工作。

有人能给我指出正确的方向/帮助我将其转换为 CentOS 脚本吗?

答案1

CentOS 是基于 Red Hat 的 Linux 发行版,因此无法直接执行 Windows 批处理脚本。您必须将其转换为上述发行版可执行的格式。例如,bash 脚本可能如下所示:

#!/bin/bash
cd ~/Documents
echo Current Directory = $(pwd)
read -p "Please insert domain name?" folder

if [ ! -d "$folder" ]; then
    mkdir $folder
    cd $folder
    touch CSR.txt
    touch KEY.txt

    vi CSR.txt
    vi KEY.txt
else
    currentDate=$(date +%F)
    mkdir $currentDate
    cd $currentDate

    touch CSR.txt
    touch KEY.txt

    vi CSR.txt
    vi KEY.txt
fi

上述脚本将缩短currentDate为 YYYY-MM-DD 格式的日期。

根据您的实际目标,建议您投入更多精力。您正在创建 CSR 和 KEY 文本文件,这暗示您想要做一些类似于设置 CA 的事情?这方面有很多需要考虑的地方,而且超出了您的问题范围,但您确实需要仔细阅读!

此外,我建议对您的初始帖子进行更改。您的编辑确实有些奇怪,而且您的缩进乱七八糟。在 stackexchange 上,通常支持在块前面添加空格/制表符来将其标记为代码。在这种情况下,这确实很有帮助。

相关内容