Bash 将回音写入脚本
在bash脚本中,我需要创建另一个脚本文件,因此我有以下内容Bash 将回音写入脚本,bash,shell,Bash,Shell,在bash脚本中,我需要创建另一个脚本文件,因此我有以下内容 cat >/etc/script2.sh <<EOL #!/bin/bash mysql -e "SHOW TABLES FROM $DATABASE_NAME" > /var/lib/mysql-files/tables.txt echo "$(tail -n +2 /var/lib/mysql-files/tables.txt)" > /var/lib/mysql-files/tables.txt
cat >/etc/script2.sh <<EOL
#!/bin/bash
mysql -e "SHOW TABLES FROM $DATABASE_NAME" > /var/lib/mysql-files/tables.txt
echo "$(tail -n +2 /var/lib/mysql-files/tables.txt)" > /var/lib/mysql-files/tables.txt
EOL
没有执行echo
吗
更新
使用当前代码,当/var/lib/mysql files/tables.txt
不存在时,我得到tail:无法打开“/var/lib/mysql files/tables.txt”进行读取:没有这样的文件或目录
当文件存在时,我会得到如下结果
mysql -e "SHOW TABLES FROM reaction_production" > /var/lib/mysql-files/tables.txt
echo "table1
table2
table3" > /var/lib/mysql-files/tables.txt
脚本2必须在将来执行时进行评估,而不是现在编写时
谢谢您需要在进程替换上替换
$
,以便在当前脚本中将其视为字符串
,从而在执行script2.sh
时对其进行评估
#!/bin/bash
cat > /etc/script2.sh << EOF
#!/bin/bash
mysql -e "SHOW TABLES FROM $DATABASE_NAME" > /var/lib/mysql-files/tables.txt
echo "\$(tail -n +2 /var/lib/mysql-files/tables.txt)" > /var/lib/mysql-files/tables.txt
EOF
#/bin/bash
cat>/etc/script2.sh/var/lib/mysql files/tables.txt
echo“\$(tail-n+2/var/lib/mysql files/tables.txt)”>/var/lib/mysql files/tables.txt
EOF
执行上述代码后,能否显示script2.sh的外观。您需要对$
#!/bin/bash
cat > /etc/script2.sh << EOF
#!/bin/bash
mysql -e "SHOW TABLES FROM $DATABASE_NAME" > /var/lib/mysql-files/tables.txt
echo "\$(tail -n +2 /var/lib/mysql-files/tables.txt)" > /var/lib/mysql-files/tables.txt
EOF