Jul 31, 2019
Linux cat 建立shell scripts 時心得分享
今天在用 cat 指令寫 scripts 發生了一件事
原先的scripts, 如下
#!/bin/bash
i="0"
while [ $i -lt 1 ]
do
mpirun -n 24 -f ./hosts ./xhpl
i=$((i+1))
done
EOF
我用cat 的方式去建立一個新檔
cat > /nfs/projects/test << EOF
#!/bin/bash
i="0"
while [ $i -lt 1 ]
do
mpirun -n 24 -f ./hosts ./xhpl
i=$((i+1))
done
結果不能執行??!!
後來和原先的檔案做diff, 畫面如下,
原來是$ 被拿掉了.
所以正確寫法如下, 記得要用跳脫字元, 將原來的保留字變成字串
cat > /nfs/projects/hpl_test_c << EOF
#!/bin/bash
i="0"
while [ \$i -lt 1 ]
do
mpirun -n 24 -f ./hosts ./xhpl
i=\$((i+1))
done
EOF
另外, 分享一下幾個我在使用cat 的心得
- 若原先檔案已存在, 要增加一些資料在後面, 例如在 /etc/hosts 要加新的主機, 可以這樣做 ( 重導字元 >>的應用)
cat >> /etc/hosts << EOF
172.16.10.1 host1
172.16.10.2 host2
EOF
2. 若是要新增一個檔案, 可以這樣做 ( 重導字元>的應用)
cat > /tmp/test << EOF
This is a test file.
EOF