作者chabaterii09 (小豆子)
看板Linux
標題[問題] args特殊字元輸入請益
時間Fri May 21 23:53:34 2021
各位板上大神們好
小弟最近遇到一個問題想求解
我希望能夠透過指令(程式亦可)的方式將args寫入另一份檔案
但是遇到特殊字元時就失敗了
目前有嘗試過shell script 、 python 、 ansible with extra-var 都沒有辦法解決
請問有沒有大大能提供想法呢?
狀況範例
輸入
command a 1 2 3 --show -h '' "" {} [] () <> \ / $ # @ | ! + - -- ``
希望能夠在另一個檔案內看到
a 1 2 3 --show -h '' "" {} [] () <> \ / $ # @ | ! + - -- ``
中間有個像是Il的是| <-- ps -ef | grep -v grep 中間那個|
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.169.131 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1621612419.A.5F4.html
1F:推 Bencrie: | 這個不在 args 裡啊,你找不到的05/22 00:09
2F:→ Bencrie: 你真的要跟 shell 命令長一樣的話就多一層 sh05/22 00:10
3F:→ Bencrie: sh -c "command a 1 2 3 ..." 然後抓 sh 的 argv[2]05/22 00:12
4F:→ Bencrie: 然後你那些特殊字元有做 escape 嗎?05/22 00:13
沒有跳脫
後面的args我會再去做另外的處理
考慮到執行的人不一定是我
我希望任何人在運用這個command時不會有感覺到跟其他時候有差異
使用情境是我有多台的遠端主機(功能相近)
我會維護主機的管理清單
我藉由一個command讓不同的人能夠在這台管理中心對他想要的目標主機群下指令取得他
想要的資訊
所以我想做一個command達成這個目的
原本是想自己客制指令
這樣就可以完成大部分的事
但是考量到客制的指令等於要求別人多記一套
所以最後選擇讓人只有一個command和指定主機群或是指定主機的可選選項
其餘自由發揮
結果難度好高
※ 編輯: chabaterii09 (223.140.82.33 臺灣), 05/22/2021 00:27:05
5F:推 Bencrie: 呃 ... 那就用 sh -c 'user 打的任何指令' 05/22 01:01
6F:推 bitlife: 或許先提示「請輸入欲執行的命令列」,然後讀入一行? 05/22 08:28
感謝各位大大
我最後找到一個偏方是
用nodejs的request.query.firstname在網頁上把arg輸入
看起來可以讀到全部的特殊字元
剩下就靠加工了XD
感謝兩位大大提供想法
我也多學了一些
奉上100p
※ 編輯: chabaterii09 (27.53.147.145 臺灣), 05/22/2021 08:34:26
https://i.imgur.com/tU71fAf.jpg
https://i.imgur.com/gtXwijl.jpg
※ 編輯: chabaterii09 (27.53.147.145 臺灣), 05/22/2021 08:40:20
7F:→ bitlife: 一行推文稅後90P, 貪財貪財 XD 05/22 08:41
8F:→ antontw: 這個命題應該搞錯很多東西 05/25 21:14