我想提示用户输入一个URL,但它只能包含A-Z,a-z,0-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。
我正在将 bash 脚本中执行的每个操作记录到日志文件中。我想cd详细更改目录,以便将输出记录到日志中。
有点像这样:
iMac:~ leetbacoon$ cd -v /new\ path
cd: /Users/leetbacoon -> /new path
iMac:new path leetbacoon$
Run Code Online (Sandbox Code Playgroud)
遗憾的是cd缺少详细的标志。关于如何让这样的事情起作用的任何想法?