gpt4 book ai didi

macos - Mac OS X - 将带空格的路径名作为参数传递给 bashscript,然后发出打开的终端命令

转载 作者:行者123 更新时间:2023-11-29 09:44:04 30 4
gpt4 key购买 nike

在 Mac OS X Mavericks 上使用 bash shell 的问题

我创建了一个名为 test.sh 的 bash 脚本,它接受一个命令行参数:-

$ cat test.sh
#!/bin/bash
open -a Terminal $1

当我以下列方式执行此脚本时:-

$ ./test.sh /Users/myusername/Desktop/folderwithoutspaces/

它完美地执行并在给定的文件夹中启动一个新的终端窗口。

但是当我以下列方式执行这个脚本时:-

$ ./test.sh /Users/myusername/Desktop/folder\ withspaces/

它无法打开新的终端窗口并显示以下错误消息:-

The files /Users/myusername/Desktop/folder and /Users/myusername/Desktop/withspaces do not exist.

我尝试了所有这些可能的方法,但都没有成功:-

$ ./test.sh "/Users/myusername/Desktop/folder\ withspaces/"
$ ./test.sh "/Users/myusername/Desktop/folder withspaces/"
$ ./test.sh '/Users/myusername/Desktop/folder\ withspaces/'
$ ./test.sh '/Users/myusername/Desktop/folder withspaces/'
$ ./test.sh /Users/myusername/Desktop/folder\ withspaces/

最佳答案

当您使用带有引号的变量时,它会根据 IFS(默认情况下包含一个空格)进行拆分。解决方案是引用变量。而不是说:

open -a Terminal $1

说:

open -a Terminal "$1"

关于macos - Mac OS X - 将带空格的路径名作为参数传递给 bashscript,然后发出打开的终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21496182/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com