我正在编写一个清理用户输入的bash验证函数.
我们的想法是,如果脚本有3个参数,那么这些参数可能只是字母数字值.但是参数可以是用双引号括起来的多个单词,如下所示:
myfunction arg1 arg2 "this is arg3"
所以我基本上想要剥离所有不是字母数字或空格字符的东西.
目前,我有:
validateEntry() {
string=$1
clean=${string//[^a-zA-Z0-9\s]/}
}
但它似乎没有用.在myfunction arg1 arg2 "this is arg3",它is arg3被剥离了.
我使用此函数的方式是在脚本中,如下所示:
name=$(validateEntry $1)
Run Code Online (Sandbox Code Playgroud)
我需要帮助.
我的想法是validateEntry在一个脚本中使用该函数,可以使用3个参数,如下所示:
if [[ "$#" -eq 3 ]]; then
arg1=$(validateEntry $1)
arg2=$(validateEntry $2)
arg3=$(validateEntry $3)
echo "${arg1}, ${arg2}, ${arg3}."
fi
Run Code Online (Sandbox Code Playgroud)
但是如果我的脚本的第三个参数是this is arg3,$arg3减少到this,即使我直接调用我的函数,使用相同的三个参数,第三个参数是this is arg3
我正在寻找创建一个 bash 函数来过滤选定目录中的所有点文件(无目录)。我只需要文件名,而不是完整路径。
目前,我只有这个命令:
find . -maxdepth 1 -type f -print0
Run Code Online (Sandbox Code Playgroud)
打印除目录之外的所有文件。现在我仍然必须排除非点文件。所以我尝试将输出通过管道传递给 grep,如下所示:
find . -maxdepth 1 -type f -print0 | grep "^\."
Run Code Online (Sandbox Code Playgroud)
它似乎没有用。->
Binary file (standard input) matches
Run Code Online (Sandbox Code Playgroud)
你们有一个优雅的解决方案吗?
谢谢!
我正在使用 fetch 来获取数据。就像这样:
getClipMetadata = (url) => {
const endpoint = 'http://www.vimeo.com/api/oembed.json';
fetch(`${endpoint}?url=${encodeURIComponent(url)}`, {
method: 'get',
cache: 'no-cache',
mode: 'cors',
headers: new Headers({
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
})
})
.then((response) => { return response.json();})
.then((res) => console.log("async response received", res))
.catch((err) => console.log("ajax error -> ", err))
}
Run Code Online (Sandbox Code Playgroud)
所以我得到的错误是这样的:
Response for preflight is invalid (redirect)
我认为从 Vimeo 的开发者页面来看它看起来很简单。
我究竟做错了什么?
我每天都在转储一个 mysql wordpress 数据库作为备份。因为我不想在一年后得到 365 个 .sql 文件,所以我认为只保留过去 30 天的转储文件是不错的。始终保留最后 30 个并自动删除旧的,每天一个。
我希望在 bash 中对此进行编程,作为 cron 工作的一部分。所以我已经有了转储并将文件发送到备份服务器的部分。我只需要添加计数并每天删除最旧的一个片段。
这是我得到的(用户名和 pswd 保存在 .my.cnf 文件中):
now=$(date +'%m-%d-%y')
mysqldump -h mysql.server.com my_database | gzip -9 > ${home}/dbBackups/db_backup.sql.gz
mv ${home}/dbBackups/db_backup.sql.gz ${home}/dbBackups/${now}_db_backup.sql.gz
scp ${home}/dbBackups/${now}_db_backup.sql.gz backup_user@backup.server.com:/home/backup_user/backup.server.com/dbBackups/
Run Code Online (Sandbox Code Playgroud)
有没有人知道如何实现这个功能?