用一個小程序(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']
