小编lee*_*oon的帖子

如何在 bash 变量中只允许某些字符

我想提示用户输入一个URL,但它只能包含A-Za-z0-9&./=_-:,和?

因此,例如:

Enter URL:
$ http://youtube.com/watch?v=1234df_AQ-x
That URL is allowed.

Enter URL:
$ https://unix.stackexchange.com/$FAKEurl%123
That URL is NOT allowed.
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我想出的,但似乎无法正常工作:

if [[ ! "${URL}" == *[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890\-\_\/\&\?\:\.\=]* ]]; then
    echo "That URL is NOT allowed."
else
    echo "That URL is allowed."
fi
Run Code Online (Sandbox Code Playgroud)

请注意,我在示例中提供的 URL 只是示例。该脚本需要处理所有可能的用户输入;它不能包含我之前指定的字符以外的字符。

在 macOS High Sierra 10.13.6 下使用 bash 3.2.57(1)-release。

osx bash text-processing variable

4
推荐指数
1
解决办法
2480
查看次数

详细更改目录?

我正在将 bash 脚本中执行的每个操作记录到日志文件中。我想cd详细更改目录,以便将输出记录到日志中。

有点像这样:

iMac:~ leetbacoon$ cd -v /new\ path
cd: /Users/leetbacoon -> /new path
iMac:new path leetbacoon$
Run Code Online (Sandbox Code Playgroud)

遗憾的是cd缺少详细的标志。关于如何让这样的事情起作用的任何想法?

shell cd-command macos

3
推荐指数
1
解决办法
138
查看次数

标签 统计

bash ×1

cd-command ×1

macos ×1

osx ×1

shell ×1

text-processing ×1

variable ×1