我为备份基地做了一个脚本。也不可能将文件 sql 放置在当前文件夹附近。没有绝对路径如何做到这一点?
#!/bin/bash
current_dir=$(pwd)
mysqldump -u***** -p***** --databases db_name > $current_dir/db_name/$(date +"%Y-%m-%d").sql
当通过 crontab 运行时写入 Unknown command current_dir 怎么办?
我为备份基地做了一个脚本。也不可能将文件 sql 放置在当前文件夹附近。没有绝对路径如何做到这一点?
#!/bin/bash
current_dir=$(pwd)
mysqldump -u***** -p***** --databases db_name > $current_dir/db_name/$(date +"%Y-%m-%d").sql
当通过 crontab 运行时写入 Unknown command current_dir 怎么办?
从评论中可以清楚地看出,作者所说的“当前目录”是指脚本本身所在的目录。
通常 shell 脚本的路径(包括脚本本身的名称)作为“空”参数传递给脚本本身:
$0.从中提取目录路径,即 丢弃文件名(使用脚本),最简单的方法是借助程序(如果特殊字符中有空格,
dirname应使用引号):$0原则上,这已经足以寻址目录,但如果脚本是使用相对路径(例如,
./скрипт)启动的,并且您想获得绝对路径,则可以使用该程序realpath:试试这个来获取可执行脚本的路径: