Linux Shell中反引號``, 單引號'', 雙引號"", $混用總結


用一個小程序(argv.py)來演示下:

#!/usr/local/bin/python3
import sys

print('sys.argv has these', len(sys.argv), 'elements:', sys.argv)

 運行與結果:

# 首先是賦予執行權限
chmod 755 argv.py

#1 一個空格一個命令行參數
./argv.py I love Shell scripting.
sys.argv has these 5 elements: ['./argv.py', 'I', 'love', 'Shell', 'scripting.']                     

#2 命令行所有參數被''或者""引起來變成一個字符串
./argv.py 'I love Shell scripting.' 
sys.argv has these 2 elements: ['./argv.py', 'I love Shell scripting.']
./argv.py "I love Shell scripting."
sys.argv has these 2 elements: ['./argv.py', 'I love Shell scripting.']

#3 反引號內的執行結果成為命令行參數
./argv.py `seq 1 5`
sys.argv has these 6 elements: ['./argv.py', '1', '2', '3', '4', '5']

#4 被''引起來反引號內的內容不執行,整體直接變成一個字符串
./argv.py '`seq 1 5`'
sys.argv has these 2 elements: ['./argv.py', '`seq 1 5`']

#5 被""引起來,反引號內的執行結果變成一個字符串
./argv.py "`seq 1 5`"
sys.argv has these 2 elements: ['./argv.py', '1\n2\n3\n4\n5']

 

#6 變量作為命令行參數
a='I love Shell scripting.'
./argv.py $a
sys.argv has these 5 elements: ['./argv.py', 'I', 'love', 'Shell', 'scripting.']

#7 被''引起來,a變量自身變成一個字符串
./argv.py '$a'
sys.argv has these 2 elements: ['./argv.py', '$a']

#8 被""引起來,輸出a變量的內容
./argv.py "$a"
sys.argv has these 2 elements: ['./argv.py', 'I love Shell scripting.']

#9 類似3
./argv.py $(seq 1 5)
sys.argv has these 6 elements: ['./argv.py', '1', '2', '3', '4', '5']

#10 類似4
./argv.py '$(seq 1 5)'
sys.argv has these 2 elements: ['./argv.py', '$(seq 1 5)']
 
#11 類似5
./argv.py "$(seq 1 5)"
sys.argv has these 2 elements: ['./argv.py', '1\n2\n3\n4\n5']

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM