摘要
使用在WSL shell脚本中运行windows可执行文件的read循环会使其在第一次迭代后退出循环。
详细信息
我对在WSL2中从shell脚本运行windows可执行文件的互操作性问题感到非常困惑。下面的while循环应该打印3行,但它只打印“第1行”。它已经在Ubuntu20.04上进行了dash、bash和zsh测试。
while read -r line; do
powershell.exe /C "echo \"${line}\""
done << EOF
line 1
line 2
line 3
EOF
即使文件有窗
有没有类似于Microsoft Powershell (一个构建在.NET框架上的面向对象的shell ) for Linux (可能是构建在Java、GObject或它自己的对象类型/没有对象类型上)的东西?
编辑:特别是在类似于bash或powershell或cmd等语法的情况下(=‘’标准‘’外壳语法)
我还在学习vim,在我的vim辅导课程中,我写了:!ls,但是找不到。我也尝试过:sh,它工作得很好,但我不知道为什么使用邦符号不能
编辑:我错了。“:sh”打开shell,但是ls和pwd仍然不能处理shell的实例
edit2:我一直在使用Powershell,现在我意识到ls和pwd不是cmd可以使用的命令。我加了
set shell=powershell.exe
set shellcmdflag=-c
set shellpipe=>
set shellredir=>
从这个问题中闪现出:_vimrc:
所以我第一次尝试使用git过滤器。我安装了Python3.9。我试着跑:git filter-repo --strip-blobs-bigger-than 100M
每次失败:
git: 'filter-repo' is not a git command.Powershell:Python was not found;CMD:Python was not found; Git Bash:
关于我错过了什么有什么建议吗?
因此,我遵循了教程,了解了如何使用Windows CMD为github设置SSH,一切工作正常,直到我使用
git clone git@github.com:{myusername}/{myrepo}.git
我得到了什么
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
即使当我运行ssh -T gi