如何使 bash 命令从 Windows 中的任何目录可执行?
How to make a bash command executable from any directory in Windows?
我制作了一些 bash 脚本,并保存到各个文件夹中。我有 Windows 10。脚本具有在 bash 中执行命令的功能。我现在可以从任何目录执行这些 .sh 脚本,因为我已将保存它们的文件夹添加到路径变量中。但我想让它对我来说更容易,并且只需要在 bash 控制台中键入函数即可执行命令。
这是其中一个脚本的示例。它被保存为 file_lister.sh。我可以通过键入 "file_lister.sh" 来 运行,但我只想通过在脚本中键入函数名称来 运行,即 "list_files"。我该怎么做呢?提前致谢。
#!/bin/bash
function list_files(){
cp C:/Users/jmell/OneDrive/projects/file_lister/file_lister.py file_lister.py
python file_lister.py
cwd=$(pwd)
if [ $cwd != "/c/Users/jmell/OneDrive/projects/file_lister" ]
then
rm file_lister.py
fi
}
list_files
除非您获取所有脚本的源代码(例如在您的 .bashrc
文件中),否则不会定义函数。但是,您的函数正在做很多不应该做的额外工作。示例脚本可以简化为
#!/bin/bash
python C:/Users/jmell/OneDrive/projects/file_lister/file_lister.py
更好的是,请记住 shebang 行被 shell 读取并删除。它指定要使用的解释器。不要创建包装器脚本,而是将以下行添加到 file_lister.py
:
#!/path/to/python
到那时,我还建议将 file_lister.py
重命名为 file_lister
。
我制作了一些 bash 脚本,并保存到各个文件夹中。我有 Windows 10。脚本具有在 bash 中执行命令的功能。我现在可以从任何目录执行这些 .sh 脚本,因为我已将保存它们的文件夹添加到路径变量中。但我想让它对我来说更容易,并且只需要在 bash 控制台中键入函数即可执行命令。
这是其中一个脚本的示例。它被保存为 file_lister.sh。我可以通过键入 "file_lister.sh" 来 运行,但我只想通过在脚本中键入函数名称来 运行,即 "list_files"。我该怎么做呢?提前致谢。
#!/bin/bash
function list_files(){
cp C:/Users/jmell/OneDrive/projects/file_lister/file_lister.py file_lister.py
python file_lister.py
cwd=$(pwd)
if [ $cwd != "/c/Users/jmell/OneDrive/projects/file_lister" ]
then
rm file_lister.py
fi
}
list_files
除非您获取所有脚本的源代码(例如在您的 .bashrc
文件中),否则不会定义函数。但是,您的函数正在做很多不应该做的额外工作。示例脚本可以简化为
#!/bin/bash
python C:/Users/jmell/OneDrive/projects/file_lister/file_lister.py
更好的是,请记住 shebang 行被 shell 读取并删除。它指定要使用的解释器。不要创建包装器脚本,而是将以下行添加到 file_lister.py
:
#!/path/to/python
到那时,我还建议将 file_lister.py
重命名为 file_lister
。