我必須使用重定向和回顯命令從另一個 bash 腳本創建一個 bash 腳本 (mkbackup.sh)。該檔案是在正確的位置創建的,但是當我在 vi 上輸入它時,只有我輸入的最后一行 (fi) 在檔案中。我已經更改了授予 rwx 訪問權限的權限,您知道發生了什么嗎?
location=$(pwd)
echo "\"$location\"/\"$new_file\""
touch "$location"/"$new_file"/backups/mkbackup.sh
chmod rwx "$location"/"$new_file"/backups/mkbackup.sh
echo "#!/bin/bash" > "$location"/"$new_file"/backups/mkbackup.sh
echo "#MYNAME" > "$location"/"$new_file"/backups/mkbackup.sh
echo "#MYID" > "$location"/"$new_file"/backups/mkbackup.sh
echo "if [ $# -eq 0 ]; then" > "$location"/"$new_file"/backups/mkbackup.sh
echo " cp -r ../backup/ ../src/*.*" > "$location"/"$new_file"/backups/mkbackup.sh
echo "fi" > "$location"/"$new_file"/backups/mkbackup.sh
echo "if [ $# -eq 1 ]; then" > "$location"/"$new_file"/backups/mkbackup.sh
echo " echo \"$1\"" > "$location"/"$new_file"/backups/mkbackup.sh
echo " given_file=\"$1\"" > "$location"/"$new_file"/backups/mkbackup.sh
echo " cp \"$given_file\" ../src/" > "$location"/"$new_file"/backups/mkbackup.sh
echo "fi" > "$location"/"$new_file"/backups/mkbackup.sh
echo "if [ $# -eq 3 ]; then" > "$location"/"$new_file"/backups/mkbackup.sh
echo " if [\" $1\" == \"-z\" ]; then" > "$location"/"$new_file"/backups/mkbackup.sh
echo " tar -cf \"$2\" ../src/*.*" > "$location"/"$new_file"/backups/mkbackup.sh
echo " cp \"$2\" ../backups/" > "$location"/"$new_file"/backups/mkbackup.sh
echo " else" > "$location"/"$new_file"/backups/mkbackup.sh
echo " tar -zcf \"$2\" ../src/*.*" > "$location"/"$new_file"/backups/mkbackup.sh
echo " cp \"$2\" ../backups/" > "$location"/"$new_file"/backups/mkbackup.sh
echo " fi" > "$location"/"$new_file"/backups/mkbackup.sh
echo "fi" > "$location"/"$new_file"/backups/mkbackup.sh
echo "if [ $# -eq 4 ]; then" > "$location"/"$new_file"/backups/mkbackup.sh
echo " if [\" $1\" == \"-z\" ]; then" > "$location"/"$new_file"/backups/mkbackup.sh
echo " tar -cf \"$2\" ../src/\"$4\"" > "$location"/"$new_file"/backups/mkbackup.sh
echo " cp \"$2\" ../backups/" > "$location"/"$new_file"/backups/mkbackup.sh
echo " else" > "$location"/"$new_file"/backups/mkbackup.sh
echo " tar -zcf \"$2\" ../src/\"$4\"" > "$location"/"$new_file"/backups/mkbackup.sh
echo " cp \"$2\" ../backups/" > "$location"/"$new_file"/backups/mkbackup.sh
echo " fi" > "$location"/"$new_file"/backups/mkbackup.sh
謝謝!
uj5u.com熱心網友回復:
>截斷目標檔案,以便您撰寫的每一行都覆寫該檔案中以前的任何內容。你可以使用>>到附加到目標檔案,但是這整個事情會使用單是清潔cat程序寫信給你打開一個檔案一次,以及大大簡化參考。
target=$(pwd)/$new_file/backups/mkbackup.sh
cat <<EOF > "$target"
#!/bin/bash
#MYNAME
#MYID
if [ $# -eq 0 ]; then
cp -r ../backup/ ../src/*.*
fi
...
EOF
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/316597.html
上一篇:表格行中的按鈕重定向到另一個頁面,其中包含Laravel中該行的資料
下一篇:Nextjs靜態匯出重定向問題
