Unix 在shell脚本中执行linux命令

Unix 在shell脚本中执行linux命令,unix,Unix,我正在尝试执行一个命令,但该命令太长,而且太长,无法仅从命令行运行。所以我试着把它放在一个shell脚本中,然后我可以运行shell脚本,它将执行非常长的unix命令 显然我需要标题,然后是命令。我需要添加什么语法才能使这个shell脚本正常工作 #!/bin/sh ./mysqldump --defaults-file=../../conf/mysql.conf --single-transaction \ --ignore-table=st.Event --ignore-table=

我正在尝试执行一个命令,但该命令太长,而且太长,无法仅从命令行运行。所以我试着把它放在一个shell脚本中,然后我可以运行shell脚本,它将执行非常长的unix命令

显然我需要标题,然后是命令。我需要添加什么语法才能使这个shell脚本正常工作

 #!/bin/sh
./mysqldump --defaults-file=../../conf/mysql.conf --single-transaction \
   --ignore-table=st.Event --ignore-table=st.TransferStatus  \
   --ignore-table=st.TransferConfiguration --ignore-table=st.TransferData \ 
   --ignore-table=st.logging_event --ignore-table=st.logging_event_exception \ 
   --ignore-table=st.logging_event_property \
   -u root -pXXXXXXXX st > /tmp/database_backup.sql

我认为您不需要
/
,而且,您可以为此命令创建别名(http://linuxreviews.org/quicktips/alias/). 准备好命令后,不要忘记
chmod+x
文件
.sh

您可能希望在此处查看此示例:


就语法而言,我觉得你的shell脚本很好

我需要注意的是脚本中的所有相对路径,更具体地说是
/mysqldump
。/../conf/mysql.conf
。使用相对路径要求始终从文件系统中的特定目录执行脚本。使用绝对路径使脚本更安全,尽管它确实将脚本绑定到特定位置

如果坚持使用相对路径,则可以将脚本放在它应该运行的目录中,然后使用绝对路径调用它

要运行脚本,您应该使用
chmod+x(或其一些变体)使其文件可执行,或者将其作为参数传递给
sh
,例如
sh/path/To/my/script.sh


如果您提到当前脚本的确切问题,我们可能会提供更多帮助…

您现在的脚本有什么问题?它能工作吗?(反斜杠不会改变脚本的任何内容,将所有内容放在一行就可以了。)此脚本是否与
/mysqldump
位于同一目录中?你怎么称呼它?调用时会发生什么情况?您需要确保在每一行末尾的连续字符“\”之后没有尾随空格、制表符或其他隐藏字符。此外,如果您已经在windows计算机上创建了此文件,然后将其传输到Linux,则应运行
dos2unix
,以及
chmod 755 myDumperScript.sh
。祝你好运
MYSQLDUMP="$(which mysqldump)"
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db