精华内容
下载资源
问答
  • 我正在尝试编写一个python脚本,它将在我的Windows机器上执行bash脚本。到目前为止,我一直在使用Cygwin终端,因此执行bash脚本RunModels.scr就像./RunModels.scr一样简单。现在我希望能够利用Python的subprocess,...

    我正在尝试编写一个python脚本,它将在我的Windows机器上执行bash脚本。到目前为止,我一直在使用Cygwin终端,因此执行bash脚本RunModels.scr就像./RunModels.scr一样简单。现在我希望能够利用Python的subprocess,但是由于Windows没有处理bash的内置功能,我不知道该怎么做。

    我试图模拟./RunModels.scr < validationInput > validationOutput

    我最初写的是:os.chdir(atm)

    vin = open("validationInput", 'r')

    vout = open("validationOutput", 'w')

    subprocess.call(['./RunModels.scr'], stdin=vin, stdout=vout, shell=True)

    vin.close()

    vout.close()

    os.chdir(home)

    但在花了一段时间试图弄清楚为什么我的访问被拒绝后,我意识到我的问题不是文件权限,而是我试图在Windows上执行bash文件。有人能解释一下如何使用python脚本在windows上执行带有定向输入/输出的bash脚本吗?

    编辑(后续问题):

    感谢您的回复,我需要到我的bash.exe的完整路径作为第一个参数。但是,现在RunModels.scr中的命令行调用在python输出中返回为command not found。例如,ls,cp,make。对此有什么建议吗?

    随访2:

    我更新了我的电话:

    subprocess.call(['C:\\cygwin64\\bin\\bash.exe', '-l', 'RunModels.scr'], stdin=vin, stdout=vout, cwd='C:\\path\\dir_where_RunModels\\')

    我现在得到的错误是/usr/bin/bash: RunModels.scr: No such file or directory。

    使用cwd似乎对这个错误没有任何影响,无论是哪种情况,子进程都在/usr/bin/bash中查找RunModels.scr。

    自我回答

    我需要在调用中指定RunModels.scr的路径,并使用cwd。

    subprocess.call(['C:\\cygwin64\\bin\\bash.exe', '-l', 'C:\\path\\dir_where_RunModels\\RunModels.scr'], stdin=vin, stdout=vout, cwd='C:\\path\\dir_where_RunModels\\')

    但是另一个问题。。。

    不管指定cwd,由RunModels.scr执行的命令都会抛出错误,就好像RunModels.scr在错误的目录中一样。脚本执行,但是cp和cd抛出错误no such file or directory。如果我通过命令行导航到RunModels.scr所在的位置,并以传统的方式执行它,我就不会得到这些错误。

    展开全文
  • shell bash脚本With the arrival of Windows 10’s Bash shell, you can now create and run Bash shell scripts on Windows 10. You can also incorporate Bash commands into a Windows batch file or PowerShell ...
    shell bash脚本

    shell bash脚本

    With the arrival of Windows 10’s Bash shell, you can now create and run Bash shell scripts on Windows 10. You can also incorporate Bash commands into a Windows batch file or PowerShell script.

    随着Windows 10 Bash Shell的到来,您现在可以在Windows 10上创建并运行Bash Shell脚本。您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中。

    Even if you know what you’re doing, this isn’t necessarily as simple as it seems. Windows and UNIX use different end-of-line characters, and the Windows file system is accessible in a different location in the Bash environment.

    即使您知道自己在做什么,也不一定像看起来那样简单。 Windows和UNIX使用不同的行尾字符,并且Windows文件系统可在Bash环境中的其他位置访问。

    如何在Windows 10上编写Bash脚本 (How to Write a Bash Script on Windows 10)

    When writing shell scripts on Windows, bear in mind that Windows and UNIX-like systems like Linux use different “end of line” characters in text files in shell scripts.

    在Windows上编写Shell脚本时,请记住Windows和类似Linux的UNIX系统在Shell脚本的文本文件中使用不同的“行尾”字符。

    In other words, this means that you can’t simply write a shell script in Notepad. Save the file in Notepad and it won’t be interpreted properly by Bash. However, you can use more advanced text editors–for example, Notepad++ allows you to give a file UNIX end-of-line characters by clicking Edit > EOL Conversion > UNIX/OSX Format.

    换句话说,这意味着您不能简单地在记事本中编写Shell脚本。 将文件保存在记事本中,Bash无法正确解释。 但是,您可以使用更高级的文本编辑器-例如, Notepad ++允许您通过单击编辑> EOL转换> UNIX / OSX格式来给文件提供UNIX行尾字符。

    However, you’re better off just writing the shell script in the Bash environment itself. The Ubuntu-based Bash environment comes with both the vi and nano text editors. The vi editor is more powerful, but if you’ve never used it before, you may want to start with nano. It’s easier to use if you’re new.

    但是,最好只在Bash环境本身中编写Shell脚本。 基于Ubuntu的Bash环境随附vinano文本编辑器。 vi编辑器功能更强大,但如果您以前从未使用过它,则可能要从nano开始。 如果您是新手,使用起来会更容易。

    For example, to create a bash script in nano, you’d run the following command in bash:

    例如,要在nano中创建bash脚本,可以在bash中运行以下命令:

    nano ~/myscript.sh
    

    This would open the Nano text editor pointed at a file named “myscript.sh” in your user account’s home directory. (The “~” character represents your home directory, so the full path is /home/username/myscript.sh.)

    这将打开Nano文本编辑器,该编辑器指向用户帐户主目录中名为“ myscript.sh”的文件。 (“〜”字符表示您的主目录,因此完整路径为/home/username/myscript.sh。)

    Start your shell script with the line:

    从以下行开始您的shell脚本:

    #!/bin/bash
    

    Enter the commands you want to run, each one on its own line. The script will run each command in turn. Add a “#” character before a line to treat it as a “comment”, something which helps you and other people understand the script but which isn’t run as a command. For more advanced tricks, consult a more detailed guide to Bash scripts on Linux. The same techniques will work in Bash on Ubuntu on Windows.

    输入要运行的命令,每个命令都单独一行。 该脚本将依次运行每个命令。 在行之前添加“#”字符以将其视为“注释”,这可以帮助您和其他人理解脚本,但不能作为命令运行。 有关更多高级技巧,请查阅有关Linux上Bash脚本的更详细指南 。 相同的技术将在Windows上的Ubuntu的Bash中工作。

    Note that there’s no way to run Windows programs from within the Bash environment. You’re restricted to Linux terminal commands and utilities, just as you would be on a typical Linux system.

    请注意,无法在Bash环境中运行Windows程序。 就像在典型的Linux系统上一样,您只能使用Linux终端命令和实用程序。

    For example, let’s just use a basic “hello world” script as an example here:

    例如,我们在这里仅使用一个基本的“ hello world”脚本作为示例:

    #!/bin/bash
    # set the STRING variable
    STRING="Hello World!"
    # print the contents of the variable on screen
    echo $STRING
    

    If you’re using the Nano text editor, you can save the file by pressing Ctrl+O and then Enter. Close the editor by pressing Ctrl+X.

    如果使用的是Nano文本编辑器,则可以通过按Ctrl + O,然后按Enter来保存文件。 通过按Ctrl + X关闭编辑器。

    使脚本可执行,然后运行 (Make the Script Executable and then Run It)

    You’ll probably want the make the script executable so you can run it more easily. On Linux, that means you need to give the script file the executable permission. To do so, run the following command in the terminal, pointing it at your script:

    您可能需要使脚本可执行,以便您可以更轻松地运行它。 在Linux上,这意味着您需要授予脚本文件可执行权限。 为此,请在终端中运行以下命令,将其指向您的脚本:

    chmod +x ~/myscript.sh
    

    To run the script, you can now just run it in the terminal by typing its path. Whenever you want to launch the script in the future, just open the Bash shell and type the path to the script.

    要运行脚本,您现在可以在终端中通过键入其路径来运行它。 每当您以后想要启动脚本时,只需打开Bash shell并键入脚本的路径即可。

    ~/myscript.sh
    

    (If the script is in the current directory, you can run it with ./myscript.sh)

    (如果脚本位于当前目录中,则可以使用./myscript.sh运行它)

    如何在Bash脚本中使用Windows文件 (How to Work With Windows Files in a Bash Script)

    To access Windows files in the script, you’ll need to specify their path under /mnt/c, not their Windows path. For example, if you wanted to specify the C:\Users\Bob\Downloads\test.txt file, you’d need to specify the /mnt/c/Users/Bob/Downloads/test.txt path. Consult our guide to file locations in Windows 10’s Bash shell for more details.

    要访问脚本中的Windows文件,您需要在/ mnt / c下指定其路径,而不是Windows路径。 例如,如果要指定C:\ Users \ Bob \ Downloads \ test.txt文件,则需要指定/mnt/c/Users/Bob/Downloads/test.txt路径。 有关更多详细信息,请参阅Windows 10 Bash shell中文件位置的指南

    如何将Bash命令合并到批处理或PowerShell脚本中 (How to Incorporate Bash Commands into a Batch or PowerShell Script)

    Lastly, if you have an existing batch file or PowerShell script you want to incorporate commands into, you can run Bash commands directly using the bash -c command.

    最后,如果您想将命令合并到现有的批处理文件或PowerShell脚本中 ,则可以使用bash -c命令直接运行Bash命令。

    For example, to run a Linux command in a Command Prompt or PowerShell window, you can run the following command:

    例如,要在命令提示符或PowerShell窗口中运行Linux命令,可以运行以下命令:

    bash -c "command"
    

    This trick allows you to add Bash commands into batch files or PowerShell scripts. The Bash shell window will appear when a Bash command is running.

    此技巧使您可以将Bash命令添加到批处理文件或PowerShell脚本中。 运行Bash命令时,将显示Bash Shell窗口。

    Update: If you have multiple Linux environments installed, you can use the wslconfig command to choose the default Linux environment used when you run the bash -c command.

    更新 :如果已安装多个Linux环境,则可以使用wslconfig命令选择运行bash -c命令时使用的默认Linux环境



    To create a shortcut to a Bash script from within Windows, just create a shortcut like normal. For the shortcut’s target, use the bash -c command we outlined above and point it at the Bash script you created.

    要在Windows中为Bash脚本创建快捷方式,只需像普通方式那样创建快捷方式。 对于快捷方式的目标,请使用我们上面概述的bash -c命令,并将其指向您创建的Bash脚本。

    For example, you’d point a shortcut at ” bash -c "~/myscript.sh" ” to run the example script above. You can also just run this command from a Command Prompt or PowerShell window, too.

    例如,您可以将快捷方式指向“ bash -c "~/myscript.sh" ”,以运行上面的示例脚本。 您也可以只在命令提示符或PowerShell窗口中运行此命令。

    翻译自: https://www.howtogeek.com/261591/how-to-create-and-run-bash-shell-scripts-on-windows-10/

    shell bash脚本

    展开全文
  • 运行bash脚本出现了$'\r': command not found问题 系windos和linux的换行符差异,解决方案: 用vim打开bash脚本,esc模式下set ff=unix,保存后重新运行就不会报错了。 ...

    运行bash脚本出现了$'\r': command not found问题

    系windos和linux的换行符差异,解决方案:

    用vim打开bash脚本,esc模式下set ff=unix,保存后重新运行就不会报错了。

     

    展开全文
  • windows运行shell脚本需要提前安装好Git,教程参考 配置python环境 例如,我需要使用的是anaconda配置的名为pytorch的虚拟环境,进入git bash,在任意目录下输入source activate pytorch ,这里的pytorch是虚拟...

    在windows运行shell脚本需要提前安装好Git,教程参考
    https://www.cnblogs.com/ximiaomiao/p/7140456.html

    1. 配置python环境
      例如,我需要使用的是anaconda配置的名为pytorch的虚拟环境,进入git bash,在任意目录下输入source activate pytorch ,这里的pytorch是虚拟环境的名字;出现(pytorch)即进入成功,如下图所示。
      在这里插入图片描述
    2. 进入脚本所在目录
      例如,我输入的目录是cd d:software/Anaconda3/pytorch_space/NLIL
    3. 运行shell脚本
      网上有许多种运行命令,我使用的是./run_wn.sh,回车即可。

    所有的“/”都不要写成“\”

    展开全文
  • windows下编写的bash脚本拖入linux环境下脚本出错之编码问题 脚本经常在windows下写好,拖入到linux环境中运行。但是在运行过程中,经常出现编码问题,这里记录一下。方便自己日后查看,或者给刚好遇到这样的问题的...
  • PHP shell_exec将不会调用Windows 10 bash脚本Apache正在我的用户帐户下运行。该应用程序通过shell_exec()调用几个外部进程:ImageMagick,phantomjs按预期执行。我也想调用一个bash脚本,它依次调用Ubuntu bash下的...
  • 当我们通过Windows系统编辑工具,将写好的Bash脚本,COPY到Linux系统中运行时,会报如下错误; -bash: ./app2.sh: /bin/bash^M: bad interpreter: No such file or directory 其中app2.sh为Bash文件...
  • windows 下编写的shell脚本运行报错提示\r 不识别 问题原因 出现这个错误的原因是 windows 下的换行符 和 linux 下的换行符是不一样的。 windows 是 \r\n linux 是 \n 解决方法 可以通过linux 的 dos2unix 工具...
  • Linux Sleep命令暂停Bash脚本

    千次阅读 2019-09-22 09:18:31
    Bash脚本在Linux在为寻常不过了,就如Windows上的bat文件一样,那么有些人在运行bash脚本时,循环和想暂停怎么做这就要用到Linux中的 sleep命令,故名思意sleep(睡眠)在Linux中就是暂停的意思。 如何使用Sleep...
  • <p>I am working in a Windows machine. I need to run a script that will execute a php file. When I run where php to find my php executable location I get the following:</p> <p>c:\xampp\...
  • 实验性BASH脚本,用于解析Windows快捷方式(LNK)文件中找到的数据结构的内容。 作为主要使用Linux来剖析文件和调查数据的法医分析师,我发现Linux上缺少可用来解析用户活动的一个非常常见工件的工具:LNK快捷方式...
  • 了解您如何使用终端并编写第一个Bash脚本。 本工作坊基于bash手册,因此,如果您想了解更多示例,。 要求 该工作坊需要Bash环境。 如果您是Windows用户,请使用 。 另外,如果您使用的是Windows,请确保使用的Node...
  • 这种问题常见于像我这种linux用的贼菜就喜欢用windows编辑好.sh文件然后在挪到linux环境的同胞们,当然,你也可能linux贼强,只是懒一点而已 ...②再运行 dos2unix xx.sh 再次bash,则无报错问题 (完) ...
  • bash脚本的坑!

    万次阅读 2017-11-20 18:20:05
    今天测试一个数据库迁移脚本,使用php运行shell脚本来实现的。但是最简单的cd /opt命令在shell中始终运行失败。 后来发现了坑,始终报错,说不存在此目录。一看肯定是哪错了,最简单的命令报错,我试了其它docker...
  • format-udf:Bash脚本,用于格式化UDF中的块设备(硬盘驱动器或闪存驱动器)。 输出是可用于跨多个操作系统系列(Windows,macOS和Linux)进行读写的驱动器。 此脚本应能够在macOS或Linux中运行
  • 如果你正在课程中正在学习shell脚本,那么需要使用Linux命令来练习...你的作业需要运行 Linux 命令,你或许想知道如何在 Windows运行 Bash 命令和脚本。 你可以在双启动模式下同时安装 Windows 和 Linux。此方法...
  • Bash脚本编程(原创)

    2018-08-04 09:58:25
    Bash,Unix shell的一種,在1987年由布萊恩·福克斯為了GNU計劃而编写。1989年釋出第一個正式版本,原先是計劃用在GNU作業系統上,但能运行于大多数类Unix系统的操作系统之上,包括Linux與Mac OS X v10.4都將它作為...
  • 如果你正在课程中正在学习shell脚本,那么需要使用Linux命令来练习...你的作业需要运行 Linux 命令,你或许想知道如何在 Windows运行 Bash 命令和脚本。 你可以在双启动模式下同时安装 Windows 和 Linux。此方法...
  • 运行shell脚本出错:/bin/bash^M: bad interpreter 1.原因 出现这个错误是文件格式的问题。可能你在Windows编辑并保存过此脚本,导致文件格式发生了变化。脚本由unix格式转变成了Windows下的dos格式,此格式无法在...
  • 33.10. 在Windows 下进行Shell 编程 34. Bash, 版本 2 和 3 34.1. Bash, 版本2 34.2. Bash, 版本3 35. 后记 35.1. 作者后记 35.2. 关于作者 35.3. 哪里可以取得帮助? 35.4. 制作这本书的工具 35.4.1. 硬件 35.4.2. ...
  • winux是bash中可用的命令的部分同步克隆,但在Windows中不可用。 特征: 显示文本文件。 (单个或多个文件)。 合并文本文件的副本。 姓名: winux 句法: winux [OPTION]... [FILE]... 描述: -s - To remove...
  • -> Linux机器(尚未在WindowsLinux子系统上进行过测试,但是应该可以使用) ->“期望”包-为Debian / Ubuntu使用apt-get install Expect -对于CentOS / RHEL,添加EPEL存储库并运行yum install Expect 未来的计划:...
  • 运行 1.安装 git 2. 右键git bash 3. bash xx.sh {} {} {}… 其中{}为参数 规则 #! /bin/bash # employ bash shell起始语句 player1=xiaoming # define a player1 player2=ken echo "Game start! $player1 $player2...
  • nvm可在任何POSIX兼容外壳程序(sh,dash,ksh,zsh,bash)上运行,尤其是在以下平台上:unix,macOS和Windows WSL。 安装和更新 安装和更新脚本 要安装或更新nvm,应运行。 为此,您可以手动下载并运行脚本,或者...
  • windows 如何在双击后运行 shell 脚本

    千次阅读 2018-09-18 16:29:25
    windows 如何在双击后运行 shell 脚本安装msysGit 安装msysGit 安装 msysGit,git-bash.exe 是能够执行shell的,把 D:\software\git\msysGit\load、D:\software\git\msysGit\load\bin 放入添加进 path 环境变量。 注...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 555
精华内容 222
关键字:

windows运行bash脚本